From jeffh at dundeemt.com Fri Jan 1 09:50:39 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Fri, 1 Jan 2016 08:50:39 -0600 Subject: [omaha] Happy New Year Everyone In-Reply-To: References: Message-ID: or a jug of apple juice *wink* On Thu, Dec 31, 2015 at 4:30 PM, Burch Kealey via Omaha wrote: > Yes and drink oranges > > Sent from my iPhone > > > On Dec 31, 2015, at 2:55 PM, Chad Homan via Omaha > wrote: > > > > Happy New Year Everyone and be safe > > > > > > > > Together We Win! Looking for cloud storage, try copy.com > > (20g free ) > > -- > > Chad - Sisel Promoter > > Take Your Life Back! > > Creating A More Meaningful Life > > > > Some people, when confronted with a problem, think "I know, I'll use > > Windows." > > Now they have two problems. > > > > Some people claim if you play a Windows Install Disc backwards you'll > hear > > satanic Messages. > > That's nothing, if you play it forward it installs Windows > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > -- Best, Jeff Hinrichs 402.218.1473 From bkealey at unomaha.edu Fri Jan 1 09:52:14 2016 From: bkealey at unomaha.edu (Burch Kealey) Date: Fri, 1 Jan 2016 14:52:14 +0000 Subject: [omaha] Happy New Year Everyone In-Reply-To: References: , Message-ID: Sorry for the opaque reference. I'm an OU grad. They were playing in the Orange bowl yesterday. Sadly they lost. Sent from my iPhone On Jan 1, 2016, at 8:50 AM, Jeff Hinrichs - DM&T > wrote: or a jug of apple juice *wink* On Thu, Dec 31, 2015 at 4:30 PM, Burch Kealey via Omaha > wrote: Yes and drink oranges Sent from my iPhone > On Dec 31, 2015, at 2:55 PM, Chad Homan via Omaha > wrote: > > Happy New Year Everyone and be safe > > > > Together We Win! Looking for cloud storage, try copy.com > (20g free ) > -- > Chad - Sisel Promoter > Take Your Life Back! > Creating A More Meaningful Life > > Some people, when confronted with a problem, think "I know, I'll use > Windows." > Now they have two problems. > > Some people claim if you play a Windows Install Disc backwards you'll hear > satanic Messages. > That's nothing, if you play it forward it installs Windows > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org -- Best, Jeff Hinrichs 402.218.1473 From jeffh at dundeemt.com Fri Jan 1 10:10:43 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Fri, 1 Jan 2016 09:10:43 -0600 Subject: [omaha] Happy New Year Everyone In-Reply-To: References: Message-ID: I assumed it was a hang over remedy -- it appears that it is either way. While not a Sooner fan, I do cheer for them when we're not playing them. (Old Big8 spirit.) On Fri, Jan 1, 2016 at 8:52 AM, Burch Kealey wrote: > Sorry for the opaque reference. I'm an OU grad. They were playing in the > Orange bowl yesterday. Sadly they lost. > > Sent from my iPhone > > On Jan 1, 2016, at 8:50 AM, Jeff Hinrichs - DM&T > wrote: > > or a jug of apple juice *wink* > > > On Thu, Dec 31, 2015 at 4:30 PM, Burch Kealey via Omaha > wrote: > >> Yes and drink oranges >> >> Sent from my iPhone >> >> > On Dec 31, 2015, at 2:55 PM, Chad Homan via Omaha >> wrote: >> > >> > Happy New Year Everyone and be safe >> > >> > >> > >> > Together We Win! Looking for cloud storage, try copy.com >> > (20g free ) >> > -- >> > Chad - Sisel Promoter >> > Take Your Life Back! >> > Creating A More Meaningful Life >> > >> > Some people, when confronted with a problem, think "I know, I'll use >> > Windows." >> > Now they have two problems. >> > >> > Some people claim if you play a Windows Install Disc backwards you'll >> hear >> > satanic Messages. >> > That's nothing, if you play it forward it installs Windows >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> _______________________________________________ >> Omaha Python Users Group mailing list >> Omaha at python.org >> https://mail.python.org/mailman/listinfo/omaha >> http://www.OmahaPython.org >> > > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > > -- Best, Jeff Hinrichs 402.218.1473 From wereapwhatwesow at gmail.com Fri Jan 1 09:58:21 2016 From: wereapwhatwesow at gmail.com (Steve Young) Date: Fri, 1 Jan 2016 08:58:21 -0600 Subject: [omaha] Happy New Year Everyone In-Reply-To: References: Message-ID: Happy New Years, and if you want to celebrate in the southern tradition, the meal consists of skillet cornbread, mustard greens, black-eyed peas, hot cooked rice, and a peach upside-down cake. Mmmm Mmmm good. On Fri, Jan 1, 2016 at 8:50 AM, Jeff Hinrichs - DM&T via Omaha < omaha at python.org> wrote: > or a jug of apple juice *wink* > > > On Thu, Dec 31, 2015 at 4:30 PM, Burch Kealey via Omaha > wrote: > > > Yes and drink oranges > > > > Sent from my iPhone > > > > > On Dec 31, 2015, at 2:55 PM, Chad Homan via Omaha > > wrote: > > > > > > Happy New Year Everyone and be safe > > > > > > > > > > > > Together We Win! Looking for cloud storage, try copy.com > > > (20g free ) > > > -- > > > Chad - Sisel Promoter > > > Take Your Life Back! > > > Creating A More Meaningful Life > > > > > > Some people, when confronted with a problem, think "I know, I'll use > > > Windows." > > > Now they have two problems. > > > > > > Some people claim if you play a Windows Install Disc backwards you'll > > hear > > > satanic Messages. > > > That's nothing, if you play it forward it installs Windows > > > _______________________________________________ > > > Omaha Python Users Group mailing list > > > Omaha at python.org > > > https://mail.python.org/mailman/listinfo/omaha > > > http://www.OmahaPython.org > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From bkealey at unomaha.edu Fri Jan 1 10:59:24 2016 From: bkealey at unomaha.edu (Burch Kealey) Date: Fri, 1 Jan 2016 15:59:24 +0000 Subject: [omaha] Happy New Year Everyone In-Reply-To: References: , Message-ID: You forgot the cabbage ________________________________________ From: Omaha on behalf of Steve Young via Omaha Sent: Friday, January 1, 2016 8:58 AM To: Omaha Python Users Group Cc: Steve Young Subject: Re: [omaha] Happy New Year Everyone Happy New Years, and if you want to celebrate in the southern tradition, the meal consists of skillet cornbread, mustard greens, black-eyed peas, hot cooked rice, and a peach upside-down cake. Mmmm Mmmm good. On Fri, Jan 1, 2016 at 8:50 AM, Jeff Hinrichs - DM&T via Omaha < omaha at python.org> wrote: > or a jug of apple juice *wink* > > > On Thu, Dec 31, 2015 at 4:30 PM, Burch Kealey via Omaha > wrote: > > > Yes and drink oranges > > > > Sent from my iPhone > > > > > On Dec 31, 2015, at 2:55 PM, Chad Homan via Omaha > > wrote: > > > > > > Happy New Year Everyone and be safe > > > > > > > > > > > > Together We Win! Looking for cloud storage, try copy.com > > > (20g free ) > > > -- > > > Chad - Sisel Promoter > > > Take Your Life Back! > > > Creating A More Meaningful Life > > > > > > Some people, when confronted with a problem, think "I know, I'll use > > > Windows." > > > Now they have two problems. > > > > > > Some people claim if you play a Windows Install Disc backwards you'll > > hear > > > satanic Messages. > > > That's nothing, if you play it forward it installs Windows > > > _______________________________________________ > > > Omaha Python Users Group mailing list > > > Omaha at python.org > > > https://mail.python.org/mailman/listinfo/omaha > > > http://www.OmahaPython.org > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From jeffh at dundeemt.com Sun Jan 3 19:04:56 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Sun, 3 Jan 2016 18:04:56 -0600 Subject: [omaha] Python Workshops @ DoSpace Group Message-ID: To all of who offered to help in any form with giving Python workshops @ DoSpace, I've been hammering out some ideas for a class targeted at those new to programming in particular. We should probably start a conversation about it and see what we can put together. Here are some goals, because we need to have something to measure against: * should allow for students to do something with Python as soon as possible - don't want them bored and inattentive. * The See/Do affect of examples should have the following qualities: * be pep8 compliant (only deviating when we are teaching a specific topic.) * be easy to test. No example has print or input in the middle of a function other than main or one designed to deal with user interaction. Too many examples mix I/O with processing leaving students with a knack for writing hard to test code. (All example code and problems should have an associated test suite [py.test] to accompany them.) * Should emphasize DRY and only deviate when showing them undry situations and how to correct. * Early coding problems are often quite boring, so there should be some sort of setup for them, a backstory, to get the students invested in their solution. For Example - learning comparison operators -- "Sam is a young AI with untrained neural nets and we need to write a module to help train him had to organize two things so he can put them on a shelf in order." Sounds a lot more interesting than write a function that compares 2 things and output them in order from smallest to largest. *yawn* So what are your ideas? What are you willing to help out with? We'll need material reviewers, testers and trainers and TAs for actual classes. I believe someone has offered to be our DoSpace ambassador. Sorry, but I didn't write down your name at the meeting. Would you speak up once again. -- Best, Jeff Hinrichs 402.218.1473 From wes.turner at gmail.com Sun Jan 3 21:12:34 2016 From: wes.turner at gmail.com (Wes Turner) Date: Sun, 3 Jan 2016 20:12:34 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: https://wrdrd.com/docs/tools/#python * http://learnxinyminutes.com/docs/python/ # ./git "[omaha] For Python beginners" https://mail.python.org/pipermail//omaha/2015-May/001816.html * http://docs.python.org/tutorial * https://scipy-lectures.github.io/intro/language/python_language.html * https://github.com/audreyr/cookiecutter- pypackage *Create and test a package w/ git[hub] and CI" * Rosalind [Bioinformatics] exercises are outstanding 1. they're already set up for online grading/points 2. you get to learn about the domain * | Homepage: http://rosalind.info/ * https://wrdrd.com/docs/consulting/data-science#rosalind * "How to create and *test* a package for your Rosalind solutions" * "Testing as a core scientific process #126" https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 * TDD first! [null] hypothesis, code, test!, [commit] * https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution * https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd * https://wrdrd.com/docs/consulting/education-technology#nbgrader [omaha] November 18 Meeting - Celebrate and Plan! https://mail.python.org/pipermail/omaha/2015-November/001943.html > The software carpentry lessons are great (and designed for group instruction IIUC): > * https://software-carpentry.org/lessons.html ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : * https://wrdrd.com/docs/consulting/software-development#computer-science To all of who offered to help in any form with giving Python workshops @ DoSpace, I've been hammering out some ideas for a class targeted at those new to programming in particular. We should probably start a conversation about it and see what we can put together. Here are some goals, because we need to have something to measure against: * should allow for students to do something with Python as soon as possible - don't want them bored and inattentive. * The See/Do affect of examples should have the following qualities: * be pep8 compliant (only deviating when we are teaching a specific topic.) * be easy to test. No example has print or input in the middle of a function other than main or one designed to deal with user interaction. Too many examples mix I/O with processing leaving students with a knack for writing hard to test code. (All example code and problems should have an associated test suite [py.test] to accompany them.) * Should emphasize DRY and only deviate when showing them undry situations and how to correct. * Early coding problems are often quite boring, so there should be some sort of setup for them, a backstory, to get the students invested in their solution. For Example - learning comparison operators -- "Sam is a young AI with untrained neural nets and we need to write a module to help train him had to organize two things so he can put them on a shelf in order." Sounds a lot more interesting than write a function that compares 2 things and output them in order from smallest to largest. *yawn* So what are your ideas? What are you willing to help out with? We'll need material reviewers, testers and trainers and TAs for actual classes. I believe someone has offered to be our DoSpace ambassador. Sorry, but I didn't write down your name at the meeting. Would you speak up once again. -- Best, Jeff Hinrichs 402.218.1473 _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From adam.shaver at gmail.com Sun Jan 3 21:27:53 2016 From: adam.shaver at gmail.com (Adam Shaver) Date: Sun, 3 Jan 2016 20:27:53 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: Sign me up for the list to help out. --Adam On Sun, Jan 3, 2016 at 6:04 PM, Jeff Hinrichs - DM&T via Omaha < omaha at python.org> wrote: > To all of who offered to help in any form with giving Python workshops @ > DoSpace, > > I've been hammering out some ideas for a class targeted at those new to > programming in particular. > > We should probably start a conversation about it and see what we can put > together. > > Here are some goals, because we need to have something to measure against: > > * should allow for students to do something with Python as soon as possible > - don't want them bored and inattentive. > > * The See/Do affect of examples should have the following qualities: > > * be pep8 compliant (only deviating when we are teaching a specific > topic.) > > * be easy to test. No example has print or input in the middle of a > function other than main or one designed to deal with user interaction. > Too many examples mix I/O with processing leaving students with a knack for > writing hard to test code. (All example code and problems should have an > associated test suite [py.test] to accompany them.) > > * Should emphasize DRY and only deviate when showing them undry > situations and how to correct. > > * Early coding problems are often quite boring, so there should be some > sort of setup for them, a backstory, to get the students invested in their > solution. For Example - learning comparison operators -- "Sam is a young > AI with untrained neural nets and we need to write a module to help train > him had to organize two things so he can put them on a shelf in order." > Sounds a lot more interesting than write a function that compares 2 things > and output them in order from smallest to largest. *yawn* > > > So what are your ideas? What are you willing to help out with? We'll need > material reviewers, testers and trainers and TAs for actual classes. > > > I believe someone has offered to be our DoSpace ambassador. Sorry, but I > didn't write down your name at the meeting. Would you speak up once again. > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From bkealey at unomaha.edu Sun Jan 3 21:36:57 2016 From: bkealey at unomaha.edu (Burch Kealey) Date: Mon, 4 Jan 2016 02:36:57 +0000 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: , Message-ID: I will make an observation - this is not meant to be critical but I want you (collectively) to chew on it. If I want to learn to be a programmer I would look for a well structured learning path. If I want to learn to do things to make my life easier I am not sure I want to take the same path as if I wanted to learn to be a programmer. This note is sent in response to both Jeff's and Wes's posting. Please I am not trying to be critical but you guys are programmers by training and vocation I am not. I don't have the time to learn to be a programmer. Unit Tests, what the heck are those? Why do I care? I ask a question on SO and a bunch of idiots jump up and are critical for the fact that my code is not PEP 8 compliant - okay it makes them feel good but it does not help me. For example, for the longest time ( say 5 years) when I opened and read a file I would do this mydata = open('some file path','r').readlines() That is not PEP 8 compliant (I don't think), but when I first Googled to learn how to open a file and read the contents into a list - I think this is the webpage I found http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php It was only this year that I took the time to learn the right way with open('some file path','r') as f_handle: data = f_handle.readlines() Why did I not bother learning the right way before this year, I was too busy learning how to do other things and it was working for me. Why did I even bother learning the right way, because I got sick of the way the conversation would get channeled if I had a question or comment about something and the pros would say well you are not opening the file right. My response is who gives a drat, that is not the problem, but they are stuck on that issue. I am probably not explaining this well - certainly you want to teach people the right way but I would be careful about how far you take it. Our software is used by over 5,000 people and I have never written a unit test (have no clue). I know that is not a big number but it is the amazing thing about Python. Don't cringe, drink some OJ! Just an observation. Happy New Year Burch ________________________________________ From: Omaha on behalf of Wes Turner via Omaha Sent: Sunday, January 3, 2016 8:12 PM To: Omaha Python Users Group Cc: Wes Turner Subject: Re: [omaha] Python Workshops @ DoSpace Group https://wrdrd.com/docs/tools/#python * http://learnxinyminutes.com/docs/python/ # ./git "[omaha] For Python beginners" https://mail.python.org/pipermail//omaha/2015-May/001816.html * http://docs.python.org/tutorial * https://scipy-lectures.github.io/intro/language/python_language.html * https://github.com/audreyr/cookiecutter- pypackage *Create and test a package w/ git[hub] and CI" * Rosalind [Bioinformatics] exercises are outstanding 1. they're already set up for online grading/points 2. you get to learn about the domain * | Homepage: http://rosalind.info/ * https://wrdrd.com/docs/consulting/data-science#rosalind * "How to create and *test* a package for your Rosalind solutions" * "Testing as a core scientific process #126" https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 * TDD first! [null] hypothesis, code, test!, [commit] * https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution * https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd * https://wrdrd.com/docs/consulting/education-technology#nbgrader [omaha] November 18 Meeting - Celebrate and Plan! https://mail.python.org/pipermail/omaha/2015-November/001943.html > The software carpentry lessons are great (and designed for group instruction IIUC): > * https://software-carpentry.org/lessons.html ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : * https://wrdrd.com/docs/consulting/software-development#computer-science To all of who offered to help in any form with giving Python workshops @ DoSpace, I've been hammering out some ideas for a class targeted at those new to programming in particular. We should probably start a conversation about it and see what we can put together. Here are some goals, because we need to have something to measure against: * should allow for students to do something with Python as soon as possible - don't want them bored and inattentive. * The See/Do affect of examples should have the following qualities: * be pep8 compliant (only deviating when we are teaching a specific topic.) * be easy to test. No example has print or input in the middle of a function other than main or one designed to deal with user interaction. Too many examples mix I/O with processing leaving students with a knack for writing hard to test code. (All example code and problems should have an associated test suite [py.test] to accompany them.) * Should emphasize DRY and only deviate when showing them undry situations and how to correct. * Early coding problems are often quite boring, so there should be some sort of setup for them, a backstory, to get the students invested in their solution. For Example - learning comparison operators -- "Sam is a young AI with untrained neural nets and we need to write a module to help train him had to organize two things so he can put them on a shelf in order." Sounds a lot more interesting than write a function that compares 2 things and output them in order from smallest to largest. *yawn* So what are your ideas? What are you willing to help out with? We'll need material reviewers, testers and trainers and TAs for actual classes. I believe someone has offered to be our DoSpace ambassador. Sorry, but I didn't write down your name at the meeting. Would you speak up once again. -- Best, Jeff Hinrichs 402.218.1473 _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From jeffh at dundeemt.com Mon Jan 4 00:11:38 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Sun, 3 Jan 2016 23:11:38 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: Burch, I think you are hitting the nail on the head. And it is good that you are pointing out that the goal might appear to be too geared to a programming as a profession. I am glad that you said something, because I am looking to approach this the other way round. That is to inspire programming in other professions. With the current push on in the sciences for repeatable results in data analysis, I would think that within the next decade that anyone who works with data for a profession (not programmer's but analysts, scientists, etc.) would be ill equipped if they can't wrangle data. To that end, many just like you and myself (when I attended college, you only received 1 credit hour for a language class. They were graduating Computer Scientists not programmers.) pick up a language or other tool, based on our ability and the reference material that we have at hand (or online). And that first exposure sits like concrete, as you stated. The example you sited about file handling is very insightful and I think lends credence to my goal of making the first contact for those new to programming as positive as we can. My goal is to have the examples that we show to the class be as good as we can make them. Be written in a way that lends itself to good convention and best current practices. So that when we show students example code -- it is of good quality, not a questionable example that was thrown together to demonstrate one thing while completely ignoring all other good practices. I believe the examples we pick for use in these still fictional classes should show not only what we want to demonstrate on the micro level but also be a good example on the macro level. So that if a student/attendee used one of our examples as a starting point for something bigger, they would be on good footing. When people first start programming we don't write code as much as borrow it from other places. *wink* My goal is to create the best quality code examples, that they can borrow for other things. Also, for beginners a blank file is too much. The examples I've come up with so far require that they fill in the missing pieces, concatenate some strings here, finish out the function body there, but the rest of the code should be stellar because we wrote it for them. Doc strings where they belong, conventions followed for naming variables (no more i, j, k which dominate in Fortran or x and y like it is a math problem)with descriptive names. So that when the time comes for a student to create a variable out of thin air they will be more likely to be descriptive too. But even if they don't use descriptive names students won't be berated, what matters is that code does what is intended. As for testing, I am not going to try and sell you on it. (Like backup and restore, most are not concerned until the ugly happens.) I am not even planning on talking about it in these opening workshops. However, that doesn't mean I am going to favor code examples that are not testable. Far from it. Everyone of my current example exercises has associated tests. The students won't run the tests but my agent, sam will. When they finish an exercise I'll know, as sam will let me know their code is running and passing the tests. That also requires that the creator of the specific lab write in a way that is testable. However, none of this is a burden to the student as they are not going to be running the tests or even thinking about creating testable code but they'll be learning it subliminally. And now that I've used the word, subliminal -- I just realized that was my goal all the time. In each example, given on a slide or as an exercise there is the part that you are talking about discretely. Focusing on that topic. However, the surrounding and supporting code is also teaching and informing the student. That is the part that needs more love in just about every example I've seen on the internet. If none of this made sense or you still don't agree (However, I think that I'm tripping over myself agreeing with you.) please say so. The point of this thread is to have a conversation where we can flesh out some reasonable goals and then see if we can meet them. So if you are reading this and have an opinion, a point, a question then please, please chime in. On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha wrote: > > I will make an observation - this is not meant to be critical but I want > you (collectively) to chew on it. If I want to learn to be a programmer I > would look for a well structured learning path. If I want to learn to do > things to make my life easier I am not sure I want to take the same path as > if I wanted to learn to be a programmer. > > This note is sent in response to both Jeff's and Wes's posting. Please I > am not trying to be critical but you guys are programmers by training and > vocation I am not. I don't have the time to learn to be a programmer. > Unit Tests, what the heck are those? Why do I care? > > I ask a question on SO and a bunch of idiots jump up and are critical for > the fact that my code is not PEP 8 compliant - okay it makes them feel good > but it does not help me. For example, for the longest time ( say 5 years) > when I opened and read a file I would do this > > mydata = open('some file path','r').readlines() > > That is not PEP 8 compliant (I don't think), but when I first Googled to > learn how to open a file and read the contents into a list - I think this > is the webpage I found > > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > > It was only this year that I took the time to learn the right way > > with open('some file path','r') as f_handle: > data = f_handle.readlines() > > Why did I not bother learning the right way before this year, I was too > busy learning how to do other things and it was working for me. Why did I > even bother learning the right way, because I got sick of the way the > conversation would get channeled if I had a question or comment about > something and the pros would say well you are not opening the file right. > My response is who gives a drat, that is not the problem, but they are > stuck on that issue. > > I am probably not explaining this well - certainly you want to teach > people the right way but I would be careful about how far you take it. Our > software is used by over 5,000 people and I have never written a unit test > (have no clue). I know that is not a big number but it is the amazing > thing about Python. > > Don't cringe, drink some OJ! > > Just an observation. > > Happy New Year > > Burch > ________________________________________ > From: Omaha on behalf > of Wes Turner via Omaha > Sent: Sunday, January 3, 2016 8:12 PM > To: Omaha Python Users Group > Cc: Wes Turner > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > https://wrdrd.com/docs/tools/#python > * http://learnxinyminutes.com/docs/python/ # ./git > > "[omaha] For Python beginners" > https://mail.python.org/pipermail//omaha/2015-May/001816.html > > * http://docs.python.org/tutorial > * https://scipy-lectures.github.io/intro/language/python_language.html > * https://github.com/audreyr/cookiecutter- > pypackage > > > *Create and test a package w/ git[hub] and CI" > > * Rosalind [Bioinformatics] exercises are outstanding > 1. they're already set up for online grading/points > 2. you get to learn about the domain > * | Homepage: http://rosalind.info/ > * https://wrdrd.com/docs/consulting/data-science#rosalind > > * "How to create and *test* a package for your Rosalind solutions" > > * "Testing as a core scientific process #126" > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > > * TDD first! > [null] hypothesis, code, test!, [commit] > > * > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > > * > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > * > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > [omaha] November 18 Meeting - Celebrate and Plan! > https://mail.python.org/pipermail/omaha/2015-November/001943.html > > > The software carpentry lessons are great (and designed for group > instruction IIUC): > > * https://software-carpentry.org/lessons.html > > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : > > * https://wrdrd.com/docs/consulting/software-development#computer-science > To all of who offered to help in any form with giving Python workshops @ > DoSpace, > > I've been hammering out some ideas for a class targeted at those new to > programming in particular. > > We should probably start a conversation about it and see what we can put > together. > > Here are some goals, because we need to have something to measure against: > > * should allow for students to do something with Python as soon as possible > - don't want them bored and inattentive. > > * The See/Do affect of examples should have the following qualities: > > * be pep8 compliant (only deviating when we are teaching a specific > topic.) > > * be easy to test. No example has print or input in the middle of a > function other than main or one designed to deal with user interaction. > Too many examples mix I/O with processing leaving students with a knack for > writing hard to test code. (All example code and problems should have an > associated test suite [py.test] to accompany them.) > > * Should emphasize DRY and only deviate when showing them undry > situations and how to correct. > > * Early coding problems are often quite boring, so there should be some > sort of setup for them, a backstory, to get the students invested in their > solution. For Example - learning comparison operators -- "Sam is a young > AI with untrained neural nets and we need to write a module to help train > him had to organize two things so he can put them on a shelf in order." > Sounds a lot more interesting than write a function that compares 2 things > and output them in order from smallest to largest. *yawn* > > > So what are your ideas? What are you willing to help out with? We'll need > material reviewers, testers and trainers and TAs for actual classes. > > > I believe someone has offered to be our DoSpace ambassador. Sorry, but I > didn't write down your name at the meeting. Would you speak up once again. > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > -- Best, Jeff Hinrichs 402.218.1473 From adam at scha.al Mon Jan 4 09:00:15 2016 From: adam at scha.al (Adam Schaal) Date: Mon, 4 Jan 2016 08:00:15 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: When I go to a workshop like this, I tend to have more fun/interest if I'm challenged. While I appreciate the fact that you'd like to introduce excellent coding practices by having a majority of the file coded, I encourage you to leave a good chunk to the user. For example, if you have defined methods/functions and tell them to create their own, I think it's far more likely that they'll copy the way you've created a method/function, then to fill our it's inner workings. Perhaps, that's already what you were thinking, but I just wanted to clarify. Learning Python was extremely applicable when I was solving ACM-like algorithm challenges - I like the idea of converting programmers into python devs - maybe even in other fields. I think that a challenge/problem like that where a programmer can clearly see python's advantages over other languages would be a valuable asset to the class. With all this said, I'm still a relative beginner - maybe even your target demo - so take what I say with a grain of salt. Adam Schaal On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < omaha at python.org> wrote: > Burch, > I think you are hitting the nail on the head. And it is good that you are > pointing out that the goal might appear to be too geared to a programming > as a profession. I am glad that you said something, because I am looking > to approach this the other way round. That is to inspire programming in > other professions. With the current push on in the sciences for > repeatable results in data analysis, I would think that within the next > decade that anyone who works with data for a profession (not programmer's > but analysts, scientists, etc.) would be ill equipped if they can't wrangle > data. > > To that end, many just like you and myself (when I attended college, you > only received 1 credit hour for a language class. They were graduating > Computer Scientists not programmers.) pick up a language or other tool, > based on our ability and the reference material that we have at hand (or > online). And that first exposure sits like concrete, as you stated. The > example you sited about file handling is very insightful and I think lends > credence to my goal of making the first contact for those new to > programming as positive as we can. > > My goal is to have the examples that we show to the class be as good as we > can make them. Be written in a way that lends itself to good convention > and best current practices. So that when we show students example code -- > it is of good quality, not a questionable example that was thrown together > to demonstrate one thing while completely ignoring all other good > practices. I believe the examples we pick for use in these still fictional > classes should show not only what we want to demonstrate on the micro level > but also be a good example on the macro level. So that if a > student/attendee used one of our examples as a starting point for something > bigger, they would be on good footing. When people first start > programming we don't write code as much as borrow it from other places. > *wink* My goal is to create the best quality code examples, that they can > borrow for other things. > > Also, for beginners a blank file is too much. The examples I've come up > with so far require that they fill in the missing pieces, concatenate some > strings here, finish out the function body there, but the rest of the code > should be stellar because we wrote it for them. Doc strings where they > belong, conventions followed for naming variables (no more i, j, k which > dominate in Fortran or x and y like it is a math problem)with descriptive > names. So that when the time comes for a student to create a variable out > of thin air they will be more likely to be descriptive too. But even if > they don't use descriptive names students won't be berated, what matters is > that code does what is intended. > > As for testing, I am not going to try and sell you on it. (Like backup and > restore, most are not concerned until the ugly happens.) I am not even > planning on talking about it in these opening workshops. However, that > doesn't mean I am going to favor code examples that are not testable. Far > from it. Everyone of my current example exercises has associated tests. > The students won't run the tests but my agent, sam will. When they finish > an exercise I'll know, as sam will let me know their code is running and > passing the tests. That also requires that the creator of the specific lab > write in a way that is testable. However, none of this is a burden to the > student as they are not going to be running the tests or even thinking > about creating testable code but they'll be learning it subliminally. > > And now that I've used the word, subliminal -- I just realized that was my > goal all the time. In each example, given on a slide or as an exercise > there is the part that you are talking about discretely. Focusing on that > topic. However, the surrounding and supporting code is also teaching and > informing the student. That is the part that needs more love in just about > every example I've seen on the internet. > > If none of this made sense or you still don't agree (However, I think that > I'm tripping over myself agreeing with you.) please say so. The point of > this thread is to have a conversation where we can flesh out some > reasonable goals and then see if we can meet them. So if you are reading > this and have an opinion, a point, a question then please, please chime in. > > > > > On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha > wrote: > > > > > I will make an observation - this is not meant to be critical but I want > > you (collectively) to chew on it. If I want to learn to be a programmer > I > > would look for a well structured learning path. If I want to learn to do > > things to make my life easier I am not sure I want to take the same path > as > > if I wanted to learn to be a programmer. > > > > This note is sent in response to both Jeff's and Wes's posting. Please I > > am not trying to be critical but you guys are programmers by training and > > vocation I am not. I don't have the time to learn to be a programmer. > > Unit Tests, what the heck are those? Why do I care? > > > > I ask a question on SO and a bunch of idiots jump up and are critical for > > the fact that my code is not PEP 8 compliant - okay it makes them feel > good > > but it does not help me. For example, for the longest time ( say 5 > years) > > when I opened and read a file I would do this > > > > mydata = open('some file path','r').readlines() > > > > That is not PEP 8 compliant (I don't think), but when I first Googled to > > learn how to open a file and read the contents into a list - I think this > > is the webpage I found > > > > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > > > > It was only this year that I took the time to learn the right way > > > > with open('some file path','r') as f_handle: > > data = f_handle.readlines() > > > > Why did I not bother learning the right way before this year, I was too > > busy learning how to do other things and it was working for me. Why did > I > > even bother learning the right way, because I got sick of the way the > > conversation would get channeled if I had a question or comment about > > something and the pros would say well you are not opening the file right. > > My response is who gives a drat, that is not the problem, but they are > > stuck on that issue. > > > > I am probably not explaining this well - certainly you want to teach > > people the right way but I would be careful about how far you take it. > Our > > software is used by over 5,000 people and I have never written a unit > test > > (have no clue). I know that is not a big number but it is the amazing > > thing about Python. > > > > Don't cringe, drink some OJ! > > > > Just an observation. > > > > Happy New Year > > > > Burch > > ________________________________________ > > From: Omaha on > behalf > > of Wes Turner via Omaha > > Sent: Sunday, January 3, 2016 8:12 PM > > To: Omaha Python Users Group > > Cc: Wes Turner > > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > > > https://wrdrd.com/docs/tools/#python > > * http://learnxinyminutes.com/docs/python/ # ./git > > > > "[omaha] For Python beginners" > > https://mail.python.org/pipermail//omaha/2015-May/001816.html > > > > * http://docs.python.org/tutorial > > * https://scipy-lectures.github.io/intro/language/python_language.html > > * https://github.com/audreyr/cookiecutter- > > pypackage > > > > > > *Create and test a package w/ git[hub] and CI" > > > > * Rosalind [Bioinformatics] exercises are outstanding > > 1. they're already set up for online grading/points > > 2. you get to learn about the domain > > * | Homepage: http://rosalind.info/ > > * https://wrdrd.com/docs/consulting/data-science#rosalind > > > > * "How to create and *test* a package for your Rosalind solutions" > > > > * "Testing as a core scientific process #126" > > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > > > > * TDD first! > > [null] hypothesis, code, test!, [commit] > > > > * > > > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > > > > * > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > > * > > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > > > [omaha] November 18 Meeting - Celebrate and Plan! > > https://mail.python.org/pipermail/omaha/2015-November/001943.html > > > > > The software carpentry lessons are great (and designed for group > > instruction IIUC): > > > * https://software-carpentry.org/lessons.html > > > > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : > > > > * > https://wrdrd.com/docs/consulting/software-development#computer-science > > To all of who offered to help in any form with giving Python workshops @ > > DoSpace, > > > > I've been hammering out some ideas for a class targeted at those new to > > programming in particular. > > > > We should probably start a conversation about it and see what we can put > > together. > > > > Here are some goals, because we need to have something to measure > against: > > > > * should allow for students to do something with Python as soon as > possible > > - don't want them bored and inattentive. > > > > * The See/Do affect of examples should have the following qualities: > > > > * be pep8 compliant (only deviating when we are teaching a specific > > topic.) > > > > * be easy to test. No example has print or input in the middle of a > > function other than main or one designed to deal with user interaction. > > Too many examples mix I/O with processing leaving students with a knack > for > > writing hard to test code. (All example code and problems should have an > > associated test suite [py.test] to accompany them.) > > > > * Should emphasize DRY and only deviate when showing them undry > > situations and how to correct. > > > > * Early coding problems are often quite boring, so there should be some > > sort of setup for them, a backstory, to get the students invested in > their > > solution. For Example - learning comparison operators -- "Sam is a young > > AI with untrained neural nets and we need to write a module to help train > > him had to organize two things so he can put them on a shelf in order." > > Sounds a lot more interesting than write a function that compares 2 > things > > and output them in order from smallest to largest. *yawn* > > > > > > So what are your ideas? What are you willing to help out with? We'll > need > > material reviewers, testers and trainers and TAs for actual classes. > > > > > > I believe someone has offered to be our DoSpace ambassador. Sorry, but I > > didn't write down your name at the meeting. Would you speak up once > again. > > > > > > -- > > Best, > > > > Jeff Hinrichs > > 402.218.1473 > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From adam at scha.al Mon Jan 4 09:04:08 2016 From: adam at scha.al (Adam Schaal) Date: Mon, 4 Jan 2016 08:04:08 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: *I should clarify this terrible sentence:* "For example, if you have defined methods/functions and tell them to create their own, I think it's far more likely that they'll copy the way you've created a method/function, then to fill our it's inner workings. " *What I meant to say was:* "For example, if you have defined methods/functions and tell them to create their own, I think it's far more likely that students would enjoy copying the way these are already created in the file then filling our the inner workings of one created for them." On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: > When I go to a workshop like this, I tend to have more fun/interest if I'm > challenged. While I appreciate the fact that you'd like to introduce > excellent coding practices by having a majority of the file coded, I > encourage you to leave a good chunk to the user. For example, if you have > defined methods/functions and tell them to create their own, I think it's > far more likely that they'll copy the way you've created a method/function, > then to fill our it's inner workings. Perhaps, that's already what you > were thinking, but I just wanted to clarify. > > Learning Python was extremely applicable when I was solving ACM-like > algorithm challenges - I like the idea of converting programmers into > python devs - maybe even in other fields. I think that a challenge/problem > like that where a programmer can clearly see python's advantages over other > languages would be a valuable asset to the class. > > With all this said, I'm still a relative beginner - maybe even your target > demo - so take what I say with a grain of salt. > > Adam Schaal > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < > omaha at python.org> wrote: > >> Burch, >> I think you are hitting the nail on the head. And it is good that you are >> pointing out that the goal might appear to be too geared to a programming >> as a profession. I am glad that you said something, because I am looking >> to approach this the other way round. That is to inspire programming in >> other professions. With the current push on in the sciences for >> repeatable results in data analysis, I would think that within the next >> decade that anyone who works with data for a profession (not programmer's >> but analysts, scientists, etc.) would be ill equipped if they can't >> wrangle >> data. >> >> To that end, many just like you and myself (when I attended college, you >> only received 1 credit hour for a language class. They were graduating >> Computer Scientists not programmers.) pick up a language or other tool, >> based on our ability and the reference material that we have at hand (or >> online). And that first exposure sits like concrete, as you stated. The >> example you sited about file handling is very insightful and I think lends >> credence to my goal of making the first contact for those new to >> programming as positive as we can. >> >> My goal is to have the examples that we show to the class be as good as we >> can make them. Be written in a way that lends itself to good convention >> and best current practices. So that when we show students example code -- >> it is of good quality, not a questionable example that was thrown together >> to demonstrate one thing while completely ignoring all other good >> practices. I believe the examples we pick for use in these still >> fictional >> classes should show not only what we want to demonstrate on the micro >> level >> but also be a good example on the macro level. So that if a >> student/attendee used one of our examples as a starting point for >> something >> bigger, they would be on good footing. When people first start >> programming we don't write code as much as borrow it from other places. >> *wink* My goal is to create the best quality code examples, that they >> can >> borrow for other things. >> >> Also, for beginners a blank file is too much. The examples I've come up >> with so far require that they fill in the missing pieces, concatenate some >> strings here, finish out the function body there, but the rest of the code >> should be stellar because we wrote it for them. Doc strings where they >> belong, conventions followed for naming variables (no more i, j, k which >> dominate in Fortran or x and y like it is a math problem)with descriptive >> names. So that when the time comes for a student to create a variable out >> of thin air they will be more likely to be descriptive too. But even if >> they don't use descriptive names students won't be berated, what matters >> is >> that code does what is intended. >> >> As for testing, I am not going to try and sell you on it. (Like backup >> and >> restore, most are not concerned until the ugly happens.) I am not even >> planning on talking about it in these opening workshops. However, that >> doesn't mean I am going to favor code examples that are not testable. Far >> from it. Everyone of my current example exercises has associated tests. >> The students won't run the tests but my agent, sam will. When they finish >> an exercise I'll know, as sam will let me know their code is running and >> passing the tests. That also requires that the creator of the specific >> lab >> write in a way that is testable. However, none of this is a burden to the >> student as they are not going to be running the tests or even thinking >> about creating testable code but they'll be learning it subliminally. >> >> And now that I've used the word, subliminal -- I just realized that was my >> goal all the time. In each example, given on a slide or as an exercise >> there is the part that you are talking about discretely. Focusing on that >> topic. However, the surrounding and supporting code is also teaching and >> informing the student. That is the part that needs more love in just >> about >> every example I've seen on the internet. >> >> If none of this made sense or you still don't agree (However, I think that >> I'm tripping over myself agreeing with you.) please say so. The point of >> this thread is to have a conversation where we can flesh out some >> reasonable goals and then see if we can meet them. So if you are reading >> this and have an opinion, a point, a question then please, please chime >> in. >> >> >> >> >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha >> wrote: >> >> > >> > I will make an observation - this is not meant to be critical but I want >> > you (collectively) to chew on it. If I want to learn to be a >> programmer I >> > would look for a well structured learning path. If I want to learn to >> do >> > things to make my life easier I am not sure I want to take the same >> path as >> > if I wanted to learn to be a programmer. >> > >> > This note is sent in response to both Jeff's and Wes's posting. Please >> I >> > am not trying to be critical but you guys are programmers by training >> and >> > vocation I am not. I don't have the time to learn to be a programmer. >> > Unit Tests, what the heck are those? Why do I care? >> > >> > I ask a question on SO and a bunch of idiots jump up and are critical >> for >> > the fact that my code is not PEP 8 compliant - okay it makes them feel >> good >> > but it does not help me. For example, for the longest time ( say 5 >> years) >> > when I opened and read a file I would do this >> > >> > mydata = open('some file path','r').readlines() >> > >> > That is not PEP 8 compliant (I don't think), but when I first Googled to >> > learn how to open a file and read the contents into a list - I think >> this >> > is the webpage I found >> > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php >> > >> > It was only this year that I took the time to learn the right way >> > >> > with open('some file path','r') as f_handle: >> > data = f_handle.readlines() >> > >> > Why did I not bother learning the right way before this year, I was too >> > busy learning how to do other things and it was working for me. Why >> did I >> > even bother learning the right way, because I got sick of the way the >> > conversation would get channeled if I had a question or comment about >> > something and the pros would say well you are not opening the file >> right. >> > My response is who gives a drat, that is not the problem, but they are >> > stuck on that issue. >> > >> > I am probably not explaining this well - certainly you want to teach >> > people the right way but I would be careful about how far you take it. >> Our >> > software is used by over 5,000 people and I have never written a unit >> test >> > (have no clue). I know that is not a big number but it is the amazing >> > thing about Python. >> > >> > Don't cringe, drink some OJ! >> > >> > Just an observation. >> > >> > Happy New Year >> > >> > Burch >> > ________________________________________ >> > From: Omaha on >> behalf >> > of Wes Turner via Omaha >> > Sent: Sunday, January 3, 2016 8:12 PM >> > To: Omaha Python Users Group >> > Cc: Wes Turner >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group >> > >> > https://wrdrd.com/docs/tools/#python >> > * http://learnxinyminutes.com/docs/python/ # ./git >> > >> > "[omaha] For Python beginners" >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html >> > >> > * http://docs.python.org/tutorial >> > * https://scipy-lectures.github.io/intro/language/python_language.html >> > * https://github.com/audreyr/cookiecutter- >> > pypackage >> > >> > >> > *Create and test a package w/ git[hub] and CI" >> > >> > * Rosalind [Bioinformatics] exercises are outstanding >> > 1. they're already set up for online grading/points >> > 2. you get to learn about the domain >> > * | Homepage: http://rosalind.info/ >> > * https://wrdrd.com/docs/consulting/data-science#rosalind >> > >> > * "How to create and *test* a package for your Rosalind solutions" >> > >> > * "Testing as a core scientific process #126" >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 >> > >> > * TDD first! >> > [null] hypothesis, code, test!, [commit] >> > >> > * >> > >> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution >> > >> > * >> > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd >> > * >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader >> > >> > [omaha] November 18 Meeting - Celebrate and Plan! >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html >> > >> > > The software carpentry lessons are great (and designed for group >> > instruction IIUC): >> > > * https://software-carpentry.org/lessons.html >> > >> > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : >> > >> > * >> https://wrdrd.com/docs/consulting/software-development#computer-science >> > To all of who offered to help in any form with giving Python workshops @ >> > DoSpace, >> > >> > I've been hammering out some ideas for a class targeted at those new to >> > programming in particular. >> > >> > We should probably start a conversation about it and see what we can put >> > together. >> > >> > Here are some goals, because we need to have something to measure >> against: >> > >> > * should allow for students to do something with Python as soon as >> possible >> > - don't want them bored and inattentive. >> > >> > * The See/Do affect of examples should have the following qualities: >> > >> > * be pep8 compliant (only deviating when we are teaching a specific >> > topic.) >> > >> > * be easy to test. No example has print or input in the middle of a >> > function other than main or one designed to deal with user interaction. >> > Too many examples mix I/O with processing leaving students with a knack >> for >> > writing hard to test code. (All example code and problems should have >> an >> > associated test suite [py.test] to accompany them.) >> > >> > * Should emphasize DRY and only deviate when showing them undry >> > situations and how to correct. >> > >> > * Early coding problems are often quite boring, so there should be >> some >> > sort of setup for them, a backstory, to get the students invested in >> their >> > solution. For Example - learning comparison operators -- "Sam is a >> young >> > AI with untrained neural nets and we need to write a module to help >> train >> > him had to organize two things so he can put them on a shelf in order." >> > Sounds a lot more interesting than write a function that compares 2 >> things >> > and output them in order from smallest to largest. *yawn* >> > >> > >> > So what are your ideas? What are you willing to help out with? We'll >> need >> > material reviewers, testers and trainers and TAs for actual classes. >> > >> > >> > I believe someone has offered to be our DoSpace ambassador. Sorry, but I >> > didn't write down your name at the meeting. Would you speak up once >> again. >> > >> > >> > -- >> > Best, >> > >> > Jeff Hinrichs >> > 402.218.1473 >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> > >> >> >> >> -- >> Best, >> >> Jeff Hinrichs >> 402.218.1473 >> _______________________________________________ >> Omaha Python Users Group mailing list >> Omaha at python.org >> https://mail.python.org/mailman/listinfo/omaha >> http://www.OmahaPython.org >> > > From wereapwhatwesow at gmail.com Mon Jan 4 19:12:39 2016 From: wereapwhatwesow at gmail.com (Steve Young) Date: Mon, 4 Jan 2016 18:12:39 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: Adam brought up a good point to consider. Are you aiming for people with little to no programming experience (which is what I was thinking) or experienced programmers wanting to learn python? Steve On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha wrote: > *I should clarify this terrible sentence:* > "For example, if you have defined methods/functions and tell them to create > their own, I think it's far more likely that they'll copy the way you've > created a method/function, then to fill our it's inner workings. " > > *What I meant to say was:* > "For example, if you have defined methods/functions and tell them to create > their own, I think it's far more likely that students would enjoy copying > the way these are already created in the file then filling our the inner > workings of one created for them." > > > > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: > > > When I go to a workshop like this, I tend to have more fun/interest if > I'm > > challenged. While I appreciate the fact that you'd like to introduce > > excellent coding practices by having a majority of the file coded, I > > encourage you to leave a good chunk to the user. For example, if you > have > > defined methods/functions and tell them to create their own, I think it's > > far more likely that they'll copy the way you've created a > method/function, > > then to fill our it's inner workings. Perhaps, that's already what you > > were thinking, but I just wanted to clarify. > > > > Learning Python was extremely applicable when I was solving ACM-like > > algorithm challenges - I like the idea of converting programmers into > > python devs - maybe even in other fields. I think that a > challenge/problem > > like that where a programmer can clearly see python's advantages over > other > > languages would be a valuable asset to the class. > > > > With all this said, I'm still a relative beginner - maybe even your > target > > demo - so take what I say with a grain of salt. > > > > Adam Schaal > > > > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < > > omaha at python.org> wrote: > > > >> Burch, > >> I think you are hitting the nail on the head. And it is good that you > are > >> pointing out that the goal might appear to be too geared to a > programming > >> as a profession. I am glad that you said something, because I am > looking > >> to approach this the other way round. That is to inspire programming in > >> other professions. With the current push on in the sciences for > >> repeatable results in data analysis, I would think that within the next > >> decade that anyone who works with data for a profession (not > programmer's > >> but analysts, scientists, etc.) would be ill equipped if they can't > >> wrangle > >> data. > >> > >> To that end, many just like you and myself (when I attended college, you > >> only received 1 credit hour for a language class. They were graduating > >> Computer Scientists not programmers.) pick up a language or other tool, > >> based on our ability and the reference material that we have at hand (or > >> online). And that first exposure sits like concrete, as you stated. The > >> example you sited about file handling is very insightful and I think > lends > >> credence to my goal of making the first contact for those new to > >> programming as positive as we can. > >> > >> My goal is to have the examples that we show to the class be as good as > we > >> can make them. Be written in a way that lends itself to good convention > >> and best current practices. So that when we show students example code > -- > >> it is of good quality, not a questionable example that was thrown > together > >> to demonstrate one thing while completely ignoring all other good > >> practices. I believe the examples we pick for use in these still > >> fictional > >> classes should show not only what we want to demonstrate on the micro > >> level > >> but also be a good example on the macro level. So that if a > >> student/attendee used one of our examples as a starting point for > >> something > >> bigger, they would be on good footing. When people first start > >> programming we don't write code as much as borrow it from other places. > >> *wink* My goal is to create the best quality code examples, that they > >> can > >> borrow for other things. > >> > >> Also, for beginners a blank file is too much. The examples I've come up > >> with so far require that they fill in the missing pieces, concatenate > some > >> strings here, finish out the function body there, but the rest of the > code > >> should be stellar because we wrote it for them. Doc strings where they > >> belong, conventions followed for naming variables (no more i, j, k which > >> dominate in Fortran or x and y like it is a math problem)with > descriptive > >> names. So that when the time comes for a student to create a variable > out > >> of thin air they will be more likely to be descriptive too. But even if > >> they don't use descriptive names students won't be berated, what matters > >> is > >> that code does what is intended. > >> > >> As for testing, I am not going to try and sell you on it. (Like backup > >> and > >> restore, most are not concerned until the ugly happens.) I am not even > >> planning on talking about it in these opening workshops. However, that > >> doesn't mean I am going to favor code examples that are not testable. > Far > >> from it. Everyone of my current example exercises has associated tests. > >> The students won't run the tests but my agent, sam will. When they > finish > >> an exercise I'll know, as sam will let me know their code is running and > >> passing the tests. That also requires that the creator of the specific > >> lab > >> write in a way that is testable. However, none of this is a burden to > the > >> student as they are not going to be running the tests or even thinking > >> about creating testable code but they'll be learning it subliminally. > >> > >> And now that I've used the word, subliminal -- I just realized that was > my > >> goal all the time. In each example, given on a slide or as an exercise > >> there is the part that you are talking about discretely. Focusing on > that > >> topic. However, the surrounding and supporting code is also teaching > and > >> informing the student. That is the part that needs more love in just > >> about > >> every example I've seen on the internet. > >> > >> If none of this made sense or you still don't agree (However, I think > that > >> I'm tripping over myself agreeing with you.) please say so. The point > of > >> this thread is to have a conversation where we can flesh out some > >> reasonable goals and then see if we can meet them. So if you are > reading > >> this and have an opinion, a point, a question then please, please chime > >> in. > >> > >> > >> > >> > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < > omaha at python.org> > >> wrote: > >> > >> > > >> > I will make an observation - this is not meant to be critical but I > want > >> > you (collectively) to chew on it. If I want to learn to be a > >> programmer I > >> > would look for a well structured learning path. If I want to learn to > >> do > >> > things to make my life easier I am not sure I want to take the same > >> path as > >> > if I wanted to learn to be a programmer. > >> > > >> > This note is sent in response to both Jeff's and Wes's posting. > Please > >> I > >> > am not trying to be critical but you guys are programmers by training > >> and > >> > vocation I am not. I don't have the time to learn to be a programmer. > >> > Unit Tests, what the heck are those? Why do I care? > >> > > >> > I ask a question on SO and a bunch of idiots jump up and are critical > >> for > >> > the fact that my code is not PEP 8 compliant - okay it makes them feel > >> good > >> > but it does not help me. For example, for the longest time ( say 5 > >> years) > >> > when I opened and read a file I would do this > >> > > >> > mydata = open('some file path','r').readlines() > >> > > >> > That is not PEP 8 compliant (I don't think), but when I first Googled > to > >> > learn how to open a file and read the contents into a list - I think > >> this > >> > is the webpage I found > >> > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > >> > > >> > It was only this year that I took the time to learn the right way > >> > > >> > with open('some file path','r') as f_handle: > >> > data = f_handle.readlines() > >> > > >> > Why did I not bother learning the right way before this year, I was > too > >> > busy learning how to do other things and it was working for me. Why > >> did I > >> > even bother learning the right way, because I got sick of the way the > >> > conversation would get channeled if I had a question or comment about > >> > something and the pros would say well you are not opening the file > >> right. > >> > My response is who gives a drat, that is not the problem, but they are > >> > stuck on that issue. > >> > > >> > I am probably not explaining this well - certainly you want to teach > >> > people the right way but I would be careful about how far you take it. > >> Our > >> > software is used by over 5,000 people and I have never written a unit > >> test > >> > (have no clue). I know that is not a big number but it is the amazing > >> > thing about Python. > >> > > >> > Don't cringe, drink some OJ! > >> > > >> > Just an observation. > >> > > >> > Happy New Year > >> > > >> > Burch > >> > ________________________________________ > >> > From: Omaha on > >> behalf > >> > of Wes Turner via Omaha > >> > Sent: Sunday, January 3, 2016 8:12 PM > >> > To: Omaha Python Users Group > >> > Cc: Wes Turner > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group > >> > > >> > https://wrdrd.com/docs/tools/#python > >> > * http://learnxinyminutes.com/docs/python/ # ./git > >> > > >> > "[omaha] For Python beginners" > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html > >> > > >> > * http://docs.python.org/tutorial > >> > * > https://scipy-lectures.github.io/intro/language/python_language.html > >> > * https://github.com/audreyr/cookiecutter- > >> > pypackage > >> > > >> > > >> > *Create and test a package w/ git[hub] and CI" > >> > > >> > * Rosalind [Bioinformatics] exercises are outstanding > >> > 1. they're already set up for online grading/points > >> > 2. you get to learn about the domain > >> > * | Homepage: http://rosalind.info/ > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind > >> > > >> > * "How to create and *test* a package for your Rosalind solutions" > >> > > >> > * "Testing as a core scientific process #126" > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > >> > > >> > * TDD first! > >> > [null] hypothesis, code, test!, [commit] > >> > > >> > * > >> > > >> > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > >> > > >> > * > >> > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > >> > * > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader > >> > > >> > [omaha] November 18 Meeting - Celebrate and Plan! > >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html > >> > > >> > > The software carpentry lessons are great (and designed for group > >> > instruction IIUC): > >> > > * https://software-carpentry.org/lessons.html > >> > > >> > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields : > >> > > >> > * > >> https://wrdrd.com/docs/consulting/software-development#computer-science > >> > To all of who offered to help in any form with giving Python > workshops @ > >> > DoSpace, > >> > > >> > I've been hammering out some ideas for a class targeted at those new > to > >> > programming in particular. > >> > > >> > We should probably start a conversation about it and see what we can > put > >> > together. > >> > > >> > Here are some goals, because we need to have something to measure > >> against: > >> > > >> > * should allow for students to do something with Python as soon as > >> possible > >> > - don't want them bored and inattentive. > >> > > >> > * The See/Do affect of examples should have the following qualities: > >> > > >> > * be pep8 compliant (only deviating when we are teaching a specific > >> > topic.) > >> > > >> > * be easy to test. No example has print or input in the middle of a > >> > function other than main or one designed to deal with user > interaction. > >> > Too many examples mix I/O with processing leaving students with a > knack > >> for > >> > writing hard to test code. (All example code and problems should have > >> an > >> > associated test suite [py.test] to accompany them.) > >> > > >> > * Should emphasize DRY and only deviate when showing them undry > >> > situations and how to correct. > >> > > >> > * Early coding problems are often quite boring, so there should be > >> some > >> > sort of setup for them, a backstory, to get the students invested in > >> their > >> > solution. For Example - learning comparison operators -- "Sam is a > >> young > >> > AI with untrained neural nets and we need to write a module to help > >> train > >> > him had to organize two things so he can put them on a shelf in > order." > >> > Sounds a lot more interesting than write a function that compares 2 > >> things > >> > and output them in order from smallest to largest. *yawn* > >> > > >> > > >> > So what are your ideas? What are you willing to help out with? We'll > >> need > >> > material reviewers, testers and trainers and TAs for actual classes. > >> > > >> > > >> > I believe someone has offered to be our DoSpace ambassador. Sorry, > but I > >> > didn't write down your name at the meeting. Would you speak up once > >> again. > >> > > >> > > >> > -- > >> > Best, > >> > > >> > Jeff Hinrichs > >> > 402.218.1473 > >> > _______________________________________________ > >> > Omaha Python Users Group mailing list > >> > Omaha at python.org > >> > https://mail.python.org/mailman/listinfo/omaha > >> > http://www.OmahaPython.org > >> > _______________________________________________ > >> > Omaha Python Users Group mailing list > >> > Omaha at python.org > >> > https://mail.python.org/mailman/listinfo/omaha > >> > http://www.OmahaPython.org > >> > _______________________________________________ > >> > Omaha Python Users Group mailing list > >> > Omaha at python.org > >> > https://mail.python.org/mailman/listinfo/omaha > >> > http://www.OmahaPython.org > >> > > >> > >> > >> > >> -- > >> Best, > >> > >> Jeff Hinrichs > >> 402.218.1473 > >> _______________________________________________ > >> Omaha Python Users Group mailing list > >> Omaha at python.org > >> https://mail.python.org/mailman/listinfo/omaha > >> http://www.OmahaPython.org > >> > > > > > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From jeffh at dundeemt.com Tue Jan 5 01:42:26 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Tue, 5 Jan 2016 00:42:26 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: @Steve, given the enthusiasm for youth programming at the last meeting, the first course I thought we'd work on, py100, for beginning / new programmers who are interested in learning Python with a class time of 2 hours (1.5 actual) with a goal of a lab/student exercise every 12 minutes. I figure on average 8 minutes per lab giving 4 minutes of lecture and slides per lab. All of which is complete speculation at this point but I believe the twice as much lab as talk is a valid starting point. *wink* It is a very fundamental programming with Python where one of our goals should be to do no harm if an attendee wants to go farther. @adam, There is absolutely no reason why we couldn't create classes for other categories of students. My working idea is PySchool, some courses (if we get there) can have pre-requisites others ,like py100, will have no pre-reqs. On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha wrote: > Adam brought up a good point to consider. Are you aiming for people with > little to no programming experience (which is what I was thinking) or > experienced programmers wanting to learn python? > > Steve > > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha > wrote: > > > *I should clarify this terrible sentence:* > > "For example, if you have defined methods/functions and tell them to > create > > their own, I think it's far more likely that they'll copy the way you've > > created a method/function, then to fill our it's inner workings. " > > > > *What I meant to say was:* > > "For example, if you have defined methods/functions and tell them to > create > > their own, I think it's far more likely that students would enjoy copying > > the way these are already created in the file then filling our the inner > > workings of one created for them." > > > > > > > > > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: > > > > > When I go to a workshop like this, I tend to have more fun/interest if > > I'm > > > challenged. While I appreciate the fact that you'd like to introduce > > > excellent coding practices by having a majority of the file coded, I > > > encourage you to leave a good chunk to the user. For example, if you > > have > > > defined methods/functions and tell them to create their own, I think > it's > > > far more likely that they'll copy the way you've created a > > method/function, > > > then to fill our it's inner workings. Perhaps, that's already what you > > > were thinking, but I just wanted to clarify. > > > > > > Learning Python was extremely applicable when I was solving ACM-like > > > algorithm challenges - I like the idea of converting programmers into > > > python devs - maybe even in other fields. I think that a > > challenge/problem > > > like that where a programmer can clearly see python's advantages over > > other > > > languages would be a valuable asset to the class. > > > > > > With all this said, I'm still a relative beginner - maybe even your > > target > > > demo - so take what I say with a grain of salt. > > > > > > Adam Schaal > > > > > > > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < > > > omaha at python.org> wrote: > > > > > >> Burch, > > >> I think you are hitting the nail on the head. And it is good that you > > are > > >> pointing out that the goal might appear to be too geared to a > > programming > > >> as a profession. I am glad that you said something, because I am > > looking > > >> to approach this the other way round. That is to inspire programming > in > > >> other professions. With the current push on in the sciences for > > >> repeatable results in data analysis, I would think that within the > next > > >> decade that anyone who works with data for a profession (not > > programmer's > > >> but analysts, scientists, etc.) would be ill equipped if they can't > > >> wrangle > > >> data. > > >> > > >> To that end, many just like you and myself (when I attended college, > you > > >> only received 1 credit hour for a language class. They were > graduating > > >> Computer Scientists not programmers.) pick up a language or other > tool, > > >> based on our ability and the reference material that we have at hand > (or > > >> online). And that first exposure sits like concrete, as you stated. > The > > >> example you sited about file handling is very insightful and I think > > lends > > >> credence to my goal of making the first contact for those new to > > >> programming as positive as we can. > > >> > > >> My goal is to have the examples that we show to the class be as good > as > > we > > >> can make them. Be written in a way that lends itself to good > convention > > >> and best current practices. So that when we show students example > code > > -- > > >> it is of good quality, not a questionable example that was thrown > > together > > >> to demonstrate one thing while completely ignoring all other good > > >> practices. I believe the examples we pick for use in these still > > >> fictional > > >> classes should show not only what we want to demonstrate on the micro > > >> level > > >> but also be a good example on the macro level. So that if a > > >> student/attendee used one of our examples as a starting point for > > >> something > > >> bigger, they would be on good footing. When people first start > > >> programming we don't write code as much as borrow it from other > places. > > >> *wink* My goal is to create the best quality code examples, that > they > > >> can > > >> borrow for other things. > > >> > > >> Also, for beginners a blank file is too much. The examples I've come > up > > >> with so far require that they fill in the missing pieces, concatenate > > some > > >> strings here, finish out the function body there, but the rest of the > > code > > >> should be stellar because we wrote it for them. Doc strings where > they > > >> belong, conventions followed for naming variables (no more i, j, k > which > > >> dominate in Fortran or x and y like it is a math problem)with > > descriptive > > >> names. So that when the time comes for a student to create a variable > > out > > >> of thin air they will be more likely to be descriptive too. But even > if > > >> they don't use descriptive names students won't be berated, what > matters > > >> is > > >> that code does what is intended. > > >> > > >> As for testing, I am not going to try and sell you on it. (Like > backup > > >> and > > >> restore, most are not concerned until the ugly happens.) I am not even > > >> planning on talking about it in these opening workshops. However, > that > > >> doesn't mean I am going to favor code examples that are not testable. > > Far > > >> from it. Everyone of my current example exercises has associated > tests. > > >> The students won't run the tests but my agent, sam will. When they > > finish > > >> an exercise I'll know, as sam will let me know their code is running > and > > >> passing the tests. That also requires that the creator of the > specific > > >> lab > > >> write in a way that is testable. However, none of this is a burden to > > the > > >> student as they are not going to be running the tests or even thinking > > >> about creating testable code but they'll be learning it subliminally. > > >> > > >> And now that I've used the word, subliminal -- I just realized that > was > > my > > >> goal all the time. In each example, given on a slide or as an > exercise > > >> there is the part that you are talking about discretely. Focusing on > > that > > >> topic. However, the surrounding and supporting code is also teaching > > and > > >> informing the student. That is the part that needs more love in just > > >> about > > >> every example I've seen on the internet. > > >> > > >> If none of this made sense or you still don't agree (However, I think > > that > > >> I'm tripping over myself agreeing with you.) please say so. The point > > of > > >> this thread is to have a conversation where we can flesh out some > > >> reasonable goals and then see if we can meet them. So if you are > > reading > > >> this and have an opinion, a point, a question then please, please > chime > > >> in. > > >> > > >> > > >> > > >> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < > > omaha at python.org> > > >> wrote: > > >> > > >> > > > >> > I will make an observation - this is not meant to be critical but I > > want > > >> > you (collectively) to chew on it. If I want to learn to be a > > >> programmer I > > >> > would look for a well structured learning path. If I want to learn > to > > >> do > > >> > things to make my life easier I am not sure I want to take the same > > >> path as > > >> > if I wanted to learn to be a programmer. > > >> > > > >> > This note is sent in response to both Jeff's and Wes's posting. > > Please > > >> I > > >> > am not trying to be critical but you guys are programmers by > training > > >> and > > >> > vocation I am not. I don't have the time to learn to be a > programmer. > > >> > Unit Tests, what the heck are those? Why do I care? > > >> > > > >> > I ask a question on SO and a bunch of idiots jump up and are > critical > > >> for > > >> > the fact that my code is not PEP 8 compliant - okay it makes them > feel > > >> good > > >> > but it does not help me. For example, for the longest time ( say 5 > > >> years) > > >> > when I opened and read a file I would do this > > >> > > > >> > mydata = open('some file path','r').readlines() > > >> > > > >> > That is not PEP 8 compliant (I don't think), but when I first > Googled > > to > > >> > learn how to open a file and read the contents into a list - I think > > >> this > > >> > is the webpage I found > > >> > > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > > >> > > > >> > It was only this year that I took the time to learn the right way > > >> > > > >> > with open('some file path','r') as f_handle: > > >> > data = f_handle.readlines() > > >> > > > >> > Why did I not bother learning the right way before this year, I was > > too > > >> > busy learning how to do other things and it was working for me. Why > > >> did I > > >> > even bother learning the right way, because I got sick of the way > the > > >> > conversation would get channeled if I had a question or comment > about > > >> > something and the pros would say well you are not opening the file > > >> right. > > >> > My response is who gives a drat, that is not the problem, but they > are > > >> > stuck on that issue. > > >> > > > >> > I am probably not explaining this well - certainly you want to teach > > >> > people the right way but I would be careful about how far you take > it. > > >> Our > > >> > software is used by over 5,000 people and I have never written a > unit > > >> test > > >> > (have no clue). I know that is not a big number but it is the > amazing > > >> > thing about Python. > > >> > > > >> > Don't cringe, drink some OJ! > > >> > > > >> > Just an observation. > > >> > > > >> > Happy New Year > > >> > > > >> > Burch > > >> > ________________________________________ > > >> > From: Omaha on > > >> behalf > > >> > of Wes Turner via Omaha > > >> > Sent: Sunday, January 3, 2016 8:12 PM > > >> > To: Omaha Python Users Group > > >> > Cc: Wes Turner > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > >> > > > >> > https://wrdrd.com/docs/tools/#python > > >> > * http://learnxinyminutes.com/docs/python/ # ./git > > >> > > > >> > "[omaha] For Python beginners" > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html > > >> > > > >> > * http://docs.python.org/tutorial > > >> > * > > https://scipy-lectures.github.io/intro/language/python_language.html > > >> > * https://github.com/audreyr/cookiecutter- > > >> > pypackage > > >> > > > >> > > > >> > *Create and test a package w/ git[hub] and CI" > > >> > > > >> > * Rosalind [Bioinformatics] exercises are outstanding > > >> > 1. they're already set up for online grading/points > > >> > 2. you get to learn about the domain > > >> > * | Homepage: http://rosalind.info/ > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind > > >> > > > >> > * "How to create and *test* a package for your Rosalind solutions" > > >> > > > >> > * "Testing as a core scientific process #126" > > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > > >> > > > >> > * TDD first! > > >> > [null] hypothesis, code, test!, [commit] > > >> > > > >> > * > > >> > > > >> > > > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > > >> > > > >> > * > > >> > > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > > >> > * > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > >> > > > >> > [omaha] November 18 Meeting - Celebrate and Plan! > > >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html > > >> > > > >> > > The software carpentry lessons are great (and designed for group > > >> > instruction IIUC): > > >> > > * https://software-carpentry.org/lessons.html > > >> > > > >> > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields > : > > >> > > > >> > * > > >> > https://wrdrd.com/docs/consulting/software-development#computer-science > > >> > To all of who offered to help in any form with giving Python > > workshops @ > > >> > DoSpace, > > >> > > > >> > I've been hammering out some ideas for a class targeted at those new > > to > > >> > programming in particular. > > >> > > > >> > We should probably start a conversation about it and see what we can > > put > > >> > together. > > >> > > > >> > Here are some goals, because we need to have something to measure > > >> against: > > >> > > > >> > * should allow for students to do something with Python as soon as > > >> possible > > >> > - don't want them bored and inattentive. > > >> > > > >> > * The See/Do affect of examples should have the following qualities: > > >> > > > >> > * be pep8 compliant (only deviating when we are teaching a > specific > > >> > topic.) > > >> > > > >> > * be easy to test. No example has print or input in the middle > of a > > >> > function other than main or one designed to deal with user > > interaction. > > >> > Too many examples mix I/O with processing leaving students with a > > knack > > >> for > > >> > writing hard to test code. (All example code and problems should > have > > >> an > > >> > associated test suite [py.test] to accompany them.) > > >> > > > >> > * Should emphasize DRY and only deviate when showing them undry > > >> > situations and how to correct. > > >> > > > >> > * Early coding problems are often quite boring, so there should be > > >> some > > >> > sort of setup for them, a backstory, to get the students invested in > > >> their > > >> > solution. For Example - learning comparison operators -- "Sam is a > > >> young > > >> > AI with untrained neural nets and we need to write a module to help > > >> train > > >> > him had to organize two things so he can put them on a shelf in > > order." > > >> > Sounds a lot more interesting than write a function that compares 2 > > >> things > > >> > and output them in order from smallest to largest. *yawn* > > >> > > > >> > > > >> > So what are your ideas? What are you willing to help out with? > We'll > > >> need > > >> > material reviewers, testers and trainers and TAs for actual classes. > > >> > > > >> > > > >> > I believe someone has offered to be our DoSpace ambassador. Sorry, > > but I > > >> > didn't write down your name at the meeting. Would you speak up once > > >> again. > > >> > > > >> > > > >> > -- > > >> > Best, > > >> > > > >> > Jeff Hinrichs > > >> > 402.218.1473 > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > > > >> > > >> > > >> > > >> -- > > >> Best, > > >> > > >> Jeff Hinrichs > > >> 402.218.1473 > > >> _______________________________________________ > > >> Omaha Python Users Group mailing list > > >> Omaha at python.org > > >> https://mail.python.org/mailman/listinfo/omaha > > >> http://www.OmahaPython.org > > >> > > > > > > > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > -- Best, Jeff Hinrichs 402.218.1473 From bkealey at unomaha.edu Tue Jan 5 21:35:33 2016 From: bkealey at unomaha.edu (Burch Kealey) Date: Wed, 6 Jan 2016 02:35:33 +0000 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: , Message-ID: I apologize for the delay. We release a new version of our software on Friday - switching to a C# harness with Python code when we need to be brilliant! I don't disagree with anything said below. I just wanted to be sure to advocate for the person who does not want to be perfect - just get something done. Here is an example of something that I think underscores the issues http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a ton of knowledge to even think of the word parser. Further, I went and looked at the links and tried to read the example and I was feeling overwhelmed. So I get the best solution would be ShadowRanger's but second best works often. If you are building production code then developing an parser might be worth the investment but if you have this messy file you need now and you are a scientist then second best is probably your path. We will talk more about this at the meeting. I will observe now and talk about this in the meeting that ppt slides are not so good for kids - okay for adults but not for kids. I make my kids write down anything that I think I want on a slide. Please understand, I am not being critical I just want to make these observations because I am a cranky middle aged man. Cheers Burch ________________________________________ From: Omaha on behalf of Jeff Hinrichs - DM&T via Omaha Sent: Tuesday, January 5, 2016 12:42 AM To: Omaha Python Users Group Cc: Jeff Hinrichs - DM&T Subject: Re: [omaha] Python Workshops @ DoSpace Group @Steve, given the enthusiasm for youth programming at the last meeting, the first course I thought we'd work on, py100, for beginning / new programmers who are interested in learning Python with a class time of 2 hours (1.5 actual) with a goal of a lab/student exercise every 12 minutes. I figure on average 8 minutes per lab giving 4 minutes of lecture and slides per lab. All of which is complete speculation at this point but I believe the twice as much lab as talk is a valid starting point. *wink* It is a very fundamental programming with Python where one of our goals should be to do no harm if an attendee wants to go farther. @adam, There is absolutely no reason why we couldn't create classes for other categories of students. My working idea is PySchool, some courses (if we get there) can have pre-requisites others ,like py100, will have no pre-reqs. On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha wrote: > Adam brought up a good point to consider. Are you aiming for people with > little to no programming experience (which is what I was thinking) or > experienced programmers wanting to learn python? > > Steve > > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha > wrote: > > > *I should clarify this terrible sentence:* > > "For example, if you have defined methods/functions and tell them to > create > > their own, I think it's far more likely that they'll copy the way you've > > created a method/function, then to fill our it's inner workings. " > > > > *What I meant to say was:* > > "For example, if you have defined methods/functions and tell them to > create > > their own, I think it's far more likely that students would enjoy copying > > the way these are already created in the file then filling our the inner > > workings of one created for them." > > > > > > > > > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: > > > > > When I go to a workshop like this, I tend to have more fun/interest if > > I'm > > > challenged. While I appreciate the fact that you'd like to introduce > > > excellent coding practices by having a majority of the file coded, I > > > encourage you to leave a good chunk to the user. For example, if you > > have > > > defined methods/functions and tell them to create their own, I think > it's > > > far more likely that they'll copy the way you've created a > > method/function, > > > then to fill our it's inner workings. Perhaps, that's already what you > > > were thinking, but I just wanted to clarify. > > > > > > Learning Python was extremely applicable when I was solving ACM-like > > > algorithm challenges - I like the idea of converting programmers into > > > python devs - maybe even in other fields. I think that a > > challenge/problem > > > like that where a programmer can clearly see python's advantages over > > other > > > languages would be a valuable asset to the class. > > > > > > With all this said, I'm still a relative beginner - maybe even your > > target > > > demo - so take what I say with a grain of salt. > > > > > > Adam Schaal > > > > > > > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < > > > omaha at python.org> wrote: > > > > > >> Burch, > > >> I think you are hitting the nail on the head. And it is good that you > > are > > >> pointing out that the goal might appear to be too geared to a > > programming > > >> as a profession. I am glad that you said something, because I am > > looking > > >> to approach this the other way round. That is to inspire programming > in > > >> other professions. With the current push on in the sciences for > > >> repeatable results in data analysis, I would think that within the > next > > >> decade that anyone who works with data for a profession (not > > programmer's > > >> but analysts, scientists, etc.) would be ill equipped if they can't > > >> wrangle > > >> data. > > >> > > >> To that end, many just like you and myself (when I attended college, > you > > >> only received 1 credit hour for a language class. They were > graduating > > >> Computer Scientists not programmers.) pick up a language or other > tool, > > >> based on our ability and the reference material that we have at hand > (or > > >> online). And that first exposure sits like concrete, as you stated. > The > > >> example you sited about file handling is very insightful and I think > > lends > > >> credence to my goal of making the first contact for those new to > > >> programming as positive as we can. > > >> > > >> My goal is to have the examples that we show to the class be as good > as > > we > > >> can make them. Be written in a way that lends itself to good > convention > > >> and best current practices. So that when we show students example > code > > -- > > >> it is of good quality, not a questionable example that was thrown > > together > > >> to demonstrate one thing while completely ignoring all other good > > >> practices. I believe the examples we pick for use in these still > > >> fictional > > >> classes should show not only what we want to demonstrate on the micro > > >> level > > >> but also be a good example on the macro level. So that if a > > >> student/attendee used one of our examples as a starting point for > > >> something > > >> bigger, they would be on good footing. When people first start > > >> programming we don't write code as much as borrow it from other > places. > > >> *wink* My goal is to create the best quality code examples, that > they > > >> can > > >> borrow for other things. > > >> > > >> Also, for beginners a blank file is too much. The examples I've come > up > > >> with so far require that they fill in the missing pieces, concatenate > > some > > >> strings here, finish out the function body there, but the rest of the > > code > > >> should be stellar because we wrote it for them. Doc strings where > they > > >> belong, conventions followed for naming variables (no more i, j, k > which > > >> dominate in Fortran or x and y like it is a math problem)with > > descriptive > > >> names. So that when the time comes for a student to create a variable > > out > > >> of thin air they will be more likely to be descriptive too. But even > if > > >> they don't use descriptive names students won't be berated, what > matters > > >> is > > >> that code does what is intended. > > >> > > >> As for testing, I am not going to try and sell you on it. (Like > backup > > >> and > > >> restore, most are not concerned until the ugly happens.) I am not even > > >> planning on talking about it in these opening workshops. However, > that > > >> doesn't mean I am going to favor code examples that are not testable. > > Far > > >> from it. Everyone of my current example exercises has associated > tests. > > >> The students won't run the tests but my agent, sam will. When they > > finish > > >> an exercise I'll know, as sam will let me know their code is running > and > > >> passing the tests. That also requires that the creator of the > specific > > >> lab > > >> write in a way that is testable. However, none of this is a burden to > > the > > >> student as they are not going to be running the tests or even thinking > > >> about creating testable code but they'll be learning it subliminally. > > >> > > >> And now that I've used the word, subliminal -- I just realized that > was > > my > > >> goal all the time. In each example, given on a slide or as an > exercise > > >> there is the part that you are talking about discretely. Focusing on > > that > > >> topic. However, the surrounding and supporting code is also teaching > > and > > >> informing the student. That is the part that needs more love in just > > >> about > > >> every example I've seen on the internet. > > >> > > >> If none of this made sense or you still don't agree (However, I think > > that > > >> I'm tripping over myself agreeing with you.) please say so. The point > > of > > >> this thread is to have a conversation where we can flesh out some > > >> reasonable goals and then see if we can meet them. So if you are > > reading > > >> this and have an opinion, a point, a question then please, please > chime > > >> in. > > >> > > >> > > >> > > >> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < > > omaha at python.org> > > >> wrote: > > >> > > >> > > > >> > I will make an observation - this is not meant to be critical but I > > want > > >> > you (collectively) to chew on it. If I want to learn to be a > > >> programmer I > > >> > would look for a well structured learning path. If I want to learn > to > > >> do > > >> > things to make my life easier I am not sure I want to take the same > > >> path as > > >> > if I wanted to learn to be a programmer. > > >> > > > >> > This note is sent in response to both Jeff's and Wes's posting. > > Please > > >> I > > >> > am not trying to be critical but you guys are programmers by > training > > >> and > > >> > vocation I am not. I don't have the time to learn to be a > programmer. > > >> > Unit Tests, what the heck are those? Why do I care? > > >> > > > >> > I ask a question on SO and a bunch of idiots jump up and are > critical > > >> for > > >> > the fact that my code is not PEP 8 compliant - okay it makes them > feel > > >> good > > >> > but it does not help me. For example, for the longest time ( say 5 > > >> years) > > >> > when I opened and read a file I would do this > > >> > > > >> > mydata = open('some file path','r').readlines() > > >> > > > >> > That is not PEP 8 compliant (I don't think), but when I first > Googled > > to > > >> > learn how to open a file and read the contents into a list - I think > > >> this > > >> > is the webpage I found > > >> > > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > > >> > > > >> > It was only this year that I took the time to learn the right way > > >> > > > >> > with open('some file path','r') as f_handle: > > >> > data = f_handle.readlines() > > >> > > > >> > Why did I not bother learning the right way before this year, I was > > too > > >> > busy learning how to do other things and it was working for me. Why > > >> did I > > >> > even bother learning the right way, because I got sick of the way > the > > >> > conversation would get channeled if I had a question or comment > about > > >> > something and the pros would say well you are not opening the file > > >> right. > > >> > My response is who gives a drat, that is not the problem, but they > are > > >> > stuck on that issue. > > >> > > > >> > I am probably not explaining this well - certainly you want to teach > > >> > people the right way but I would be careful about how far you take > it. > > >> Our > > >> > software is used by over 5,000 people and I have never written a > unit > > >> test > > >> > (have no clue). I know that is not a big number but it is the > amazing > > >> > thing about Python. > > >> > > > >> > Don't cringe, drink some OJ! > > >> > > > >> > Just an observation. > > >> > > > >> > Happy New Year > > >> > > > >> > Burch > > >> > ________________________________________ > > >> > From: Omaha on > > >> behalf > > >> > of Wes Turner via Omaha > > >> > Sent: Sunday, January 3, 2016 8:12 PM > > >> > To: Omaha Python Users Group > > >> > Cc: Wes Turner > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > >> > > > >> > https://wrdrd.com/docs/tools/#python > > >> > * http://learnxinyminutes.com/docs/python/ # ./git > > >> > > > >> > "[omaha] For Python beginners" > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html > > >> > > > >> > * http://docs.python.org/tutorial > > >> > * > > https://scipy-lectures.github.io/intro/language/python_language.html > > >> > * https://github.com/audreyr/cookiecutter- > > >> > pypackage > > >> > > > >> > > > >> > *Create and test a package w/ git[hub] and CI" > > >> > > > >> > * Rosalind [Bioinformatics] exercises are outstanding > > >> > 1. they're already set up for online grading/points > > >> > 2. you get to learn about the domain > > >> > * | Homepage: http://rosalind.info/ > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind > > >> > > > >> > * "How to create and *test* a package for your Rosalind solutions" > > >> > > > >> > * "Testing as a core scientific process #126" > > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > > >> > > > >> > * TDD first! > > >> > [null] hypothesis, code, test!, [commit] > > >> > > > >> > * > > >> > > > >> > > > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > > >> > > > >> > * > > >> > > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > > >> > * > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > >> > > > >> > [omaha] November 18 Meeting - Celebrate and Plan! > > >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html > > >> > > > >> > > The software carpentry lessons are great (and designed for group > > >> > instruction IIUC): > > >> > > * https://software-carpentry.org/lessons.html > > >> > > > >> > ... https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields > : > > >> > > > >> > * > > >> > https://wrdrd.com/docs/consulting/software-development#computer-science > > >> > To all of who offered to help in any form with giving Python > > workshops @ > > >> > DoSpace, > > >> > > > >> > I've been hammering out some ideas for a class targeted at those new > > to > > >> > programming in particular. > > >> > > > >> > We should probably start a conversation about it and see what we can > > put > > >> > together. > > >> > > > >> > Here are some goals, because we need to have something to measure > > >> against: > > >> > > > >> > * should allow for students to do something with Python as soon as > > >> possible > > >> > - don't want them bored and inattentive. > > >> > > > >> > * The See/Do affect of examples should have the following qualities: > > >> > > > >> > * be pep8 compliant (only deviating when we are teaching a > specific > > >> > topic.) > > >> > > > >> > * be easy to test. No example has print or input in the middle > of a > > >> > function other than main or one designed to deal with user > > interaction. > > >> > Too many examples mix I/O with processing leaving students with a > > knack > > >> for > > >> > writing hard to test code. (All example code and problems should > have > > >> an > > >> > associated test suite [py.test] to accompany them.) > > >> > > > >> > * Should emphasize DRY and only deviate when showing them undry > > >> > situations and how to correct. > > >> > > > >> > * Early coding problems are often quite boring, so there should be > > >> some > > >> > sort of setup for them, a backstory, to get the students invested in > > >> their > > >> > solution. For Example - learning comparison operators -- "Sam is a > > >> young > > >> > AI with untrained neural nets and we need to write a module to help > > >> train > > >> > him had to organize two things so he can put them on a shelf in > > order." > > >> > Sounds a lot more interesting than write a function that compares 2 > > >> things > > >> > and output them in order from smallest to largest. *yawn* > > >> > > > >> > > > >> > So what are your ideas? What are you willing to help out with? > We'll > > >> need > > >> > material reviewers, testers and trainers and TAs for actual classes. > > >> > > > >> > > > >> > I believe someone has offered to be our DoSpace ambassador. Sorry, > > but I > > >> > didn't write down your name at the meeting. Would you speak up once > > >> again. > > >> > > > >> > > > >> > -- > > >> > Best, > > >> > > > >> > Jeff Hinrichs > > >> > 402.218.1473 > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > _______________________________________________ > > >> > Omaha Python Users Group mailing list > > >> > Omaha at python.org > > >> > https://mail.python.org/mailman/listinfo/omaha > > >> > http://www.OmahaPython.org > > >> > > > >> > > >> > > >> > > >> -- > > >> Best, > > >> > > >> Jeff Hinrichs > > >> 402.218.1473 > > >> _______________________________________________ > > >> Omaha Python Users Group mailing list > > >> Omaha at python.org > > >> https://mail.python.org/mailman/listinfo/omaha > > >> http://www.OmahaPython.org > > >> > > > > > > > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > -- Best, Jeff Hinrichs 402.218.1473 _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From wes.turner at gmail.com Thu Jan 7 11:51:17 2016 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 7 Jan 2016 10:51:17 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha wrote: > I apologize for the delay. We release a new version of our software on > Friday - switching to a C# harness with Python code when we need to be > brilliant! > > > I don't disagree with anything said below. I just wanted to be sure to > advocate for the person who does not want to be perfect - just get > something done. > > Here is an example of something that I think underscores the issues > > > http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 > > I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a ton > of knowledge to even think of the word parser. Further, I went and looked > at the links and tried to read the example and I was feeling overwhelmed. > So I get the best solution would be ShadowRanger's but second best works > often. If you are building production code then developing an parser might > be worth the investment but if you have this messy file you need now and > you are a scientist then second best is probably your path. > *Scipy-lectures, Python Documentation, awesome-python-testing* Rosalind.info has a number of introductory Python exercises and algorithms. The glossary is really helpful. * | Glossary: http://rosalind.info/glossary/ * | Docs: Rosalind Python Village problem list view: http://rosalind.info/problems/list-view/?location=python-village * http://rosalind.info/problems/ini3/ # solved by 11511 * Click to Expand * http://rosalind.info/problems/ini6/ # "Dictionaries" solved by 5565 * http://www.scipy-lectures.org/intro/language/python_language.html * https://docs.python.org/2/tutorial/datastructures.html#sets * http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries * https://docs.python.org/2/tutorial/datastructures.html#dictionaries * *Set Theory* * | Wikipedia: https://en.wikipedia.org/wiki/Set_theory * | Wrdrdocs: https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory ** | *RosalindProblem: Introduction to Set Operations: http://rosalind.info/problems/seto/ *Graphs* * | Wikipedia: * | Wrdrddocs: https://wrdrd.com/docs/consulting/knowledge-engineering#graphs *Topological Sorting* * | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting * | Wrdrddocs: https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting * Rosalind.info > Glossary > "Algo: Topological Sorting" http://rosalind.info/glossary/algo-topological-sorting/ > We will talk more about this at the meeting. I will observe now and talk > about this in the meeting that ppt slides are not so good for kids - okay > for adults but not for kids. I make my kids write down anything that I > think I want on a slide. > *Jupyter and Learning* * | Wrdrddocs: https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive storage *nbgrader* * | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader * | Wrdrdtools: https://wrdrd.com/docs/consulting/education-technology#nbgrader *RISE* * | Src: https://github.com/damianavila/RISE RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal ] Reveal.js * | Homepage: http://lab.hakim.se/reveal-js/#/ * | Source: https://github.com/hakimel/reveal.js/ > Please understand, I am not being critical I just want to make these > observations because I am a cranky middle aged man. > Are you preparing students for a problem-solving business-like scientific context and/or for creative problem solving? * Linked Curricula Graphs #RDFa #JSONLD https://westurner.org/opengov/us/ne/index#linked-curricula-graphs * *schema.org/Course * #RDFa #JSONLD https://westurner.org/opengov/us/ne/index#schema-org-course .. index:: Graphs .. _graphs: Graphs ```````` | Wikipedia: ``__ | Wikipedia: ``__ | Wikipedia: ``__ | Docs: https://en.wikipedia.org/wiki/Conceptual_graph | WikipediaCategory: ``__ | WikipediaCategory: ``__ | WikipediaCategory: ``__ A graph is a :term:`system` of nodes connected by edges; an abstract data type for which there are a number of suitable data structures. * A node has edges. * An edge connects nodes. * Edges of **directed graphs** flow in only one direction; and so require two edges with separate attributes (e.g. 'magnitude', 'scale' | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph * Edges of an **undirected graph** connect nodes in both directions (with the same attributes). | Wikipedia: ``__ * Graphs and :ref:`trees` are **traversed** (or *walked*); according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`). * Graph nodes can be listed in many different *orders* (or with a given *ordering*): * Preoder * Inorder * Postorder * Level-order * There are many :ref:`data structure ` representatations for :ref:`graphs`. * There are many data serialization/marshalling formats for graphs: * Graph edge lists can be stored as adjacency :ref:`matrices `. * :ref:`NetworkX` supports a number of graph storage formats. * :ref:`RDF` is a :ref:`standard semantic web ` :ref:`linked data` format for :ref:`graphs`. * :ref:`JSON-LD` is a :ref:`standard semantic web ` :ref:`linked data` format for :ref:`graphs`. * There are many :ref:`Graph Databases` and :ref:`triplestores` for storing graphs. * A cartesian product has an interesting graph representation. (See :ref:`compression algorithms`) .. index:: NetworkX .. _networkx: NetworkX ~~~~~~~~~~~ | Wikipedia: https://en.wikipedia.org/wiki/NetworkX | Homepage: https://networkx.github.io/ | Source: git https://github.com/networkx/networkx | Docs: https://networkx.github.io/documentation.html | Docs: https://networkx.github.io/documentation/latest/ | Docs: https://networkx.github.io/documentation/latest/tutorial/ | Docs: https://networkx.github.io/documentation/latest/reference/classes.html | Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html NetworkX is an :ref:`open source` graph algorithms library written in :ref:`Python`. > > ________________________________________ > From: Omaha on behalf > of Jeff Hinrichs - DM&T via Omaha > Sent: Tuesday, January 5, 2016 12:42 AM > To: Omaha Python Users Group > Cc: Jeff Hinrichs - DM&T > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > @Steve, given the enthusiasm for youth programming at the last meeting, the > first course I thought we'd work on, py100, for beginning / new programmers > who are interested in learning Python with a class time of 2 hours (1.5 > actual) with a goal of a lab/student exercise every 12 minutes. I figure > on average 8 minutes per lab giving 4 minutes of lecture and slides per > lab. All of which is complete speculation at this point but I believe the > twice as much lab as talk is a valid starting point. *wink* It is a very > fundamental programming with Python where one of our goals should be to do > no harm if an attendee wants to go farther. > > @adam, There is absolutely no reason why we couldn't create classes for > other categories of students. My working idea is PySchool, some courses > (if we get there) can have pre-requisites others ,like py100, will have no > pre-reqs. > > > > On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha > wrote: > > > Adam brought up a good point to consider. Are you aiming for people with > > little to no programming experience (which is what I was thinking) or > > experienced programmers wanting to learn python? > > > > Steve > > > > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha > > wrote: > > > > > *I should clarify this terrible sentence:* > > > "For example, if you have defined methods/functions and tell them to > > create > > > their own, I think it's far more likely that they'll copy the way > you've > > > created a method/function, then to fill our it's inner workings. " > > > > > > *What I meant to say was:* > > > "For example, if you have defined methods/functions and tell them to > > create > > > their own, I think it's far more likely that students would enjoy > copying > > > the way these are already created in the file then filling our the > inner > > > workings of one created for them." > > > > > > > > > > > > > > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: > > > > > > > When I go to a workshop like this, I tend to have more fun/interest > if > > > I'm > > > > challenged. While I appreciate the fact that you'd like to introduce > > > > excellent coding practices by having a majority of the file coded, I > > > > encourage you to leave a good chunk to the user. For example, if you > > > have > > > > defined methods/functions and tell them to create their own, I think > > it's > > > > far more likely that they'll copy the way you've created a > > > method/function, > > > > then to fill our it's inner workings. Perhaps, that's already what > you > > > > were thinking, but I just wanted to clarify. > > > > > > > > Learning Python was extremely applicable when I was solving ACM-like > > > > algorithm challenges - I like the idea of converting programmers into > > > > python devs - maybe even in other fields. I think that a > > > challenge/problem > > > > like that where a programmer can clearly see python's advantages over > > > other > > > > languages would be a valuable asset to the class. > > > > > > > > With all this said, I'm still a relative beginner - maybe even your > > > target > > > > demo - so take what I say with a grain of salt. > > > > > > > > Adam Schaal > > > > > > > > > > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < > > > > omaha at python.org> wrote: > > > > > > > >> Burch, > > > >> I think you are hitting the nail on the head. And it is good that > you > > > are > > > >> pointing out that the goal might appear to be too geared to a > > > programming > > > >> as a profession. I am glad that you said something, because I am > > > looking > > > >> to approach this the other way round. That is to inspire > programming > > in > > > >> other professions. With the current push on in the sciences for > > > >> repeatable results in data analysis, I would think that within the > > next > > > >> decade that anyone who works with data for a profession (not > > > programmer's > > > >> but analysts, scientists, etc.) would be ill equipped if they can't > > > >> wrangle > > > >> data. > > > >> > > > >> To that end, many just like you and myself (when I attended college, > > you > > > >> only received 1 credit hour for a language class. They were > > graduating > > > >> Computer Scientists not programmers.) pick up a language or other > > tool, > > > >> based on our ability and the reference material that we have at hand > > (or > > > >> online). And that first exposure sits like concrete, as you stated. > > The > > > >> example you sited about file handling is very insightful and I think > > > lends > > > >> credence to my goal of making the first contact for those new to > > > >> programming as positive as we can. > > > >> > > > >> My goal is to have the examples that we show to the class be as good > > as > > > we > > > >> can make them. Be written in a way that lends itself to good > > convention > > > >> and best current practices. So that when we show students example > > code > > > -- > > > >> it is of good quality, not a questionable example that was thrown > > > together > > > >> to demonstrate one thing while completely ignoring all other good > > > >> practices. I believe the examples we pick for use in these still > > > >> fictional > > > >> classes should show not only what we want to demonstrate on the > micro > > > >> level > > > >> but also be a good example on the macro level. So that if a > > > >> student/attendee used one of our examples as a starting point for > > > >> something > > > >> bigger, they would be on good footing. When people first start > > > >> programming we don't write code as much as borrow it from other > > places. > > > >> *wink* My goal is to create the best quality code examples, that > > they > > > >> can > > > >> borrow for other things. > > > >> > > > >> Also, for beginners a blank file is too much. The examples I've > come > > up > > > >> with so far require that they fill in the missing pieces, > concatenate > > > some > > > >> strings here, finish out the function body there, but the rest of > the > > > code > > > >> should be stellar because we wrote it for them. Doc strings where > > they > > > >> belong, conventions followed for naming variables (no more i, j, k > > which > > > >> dominate in Fortran or x and y like it is a math problem)with > > > descriptive > > > >> names. So that when the time comes for a student to create a > variable > > > out > > > >> of thin air they will be more likely to be descriptive too. But > even > > if > > > >> they don't use descriptive names students won't be berated, what > > matters > > > >> is > > > >> that code does what is intended. > > > >> > > > >> As for testing, I am not going to try and sell you on it. (Like > > backup > > > >> and > > > >> restore, most are not concerned until the ugly happens.) I am not > even > > > >> planning on talking about it in these opening workshops. However, > > that > > > >> doesn't mean I am going to favor code examples that are not > testable. > > > Far > > > >> from it. Everyone of my current example exercises has associated > > tests. > > > >> The students won't run the tests but my agent, sam will. When they > > > finish > > > >> an exercise I'll know, as sam will let me know their code is running > > and > > > >> passing the tests. That also requires that the creator of the > > specific > > > >> lab > > > >> write in a way that is testable. However, none of this is a burden > to > > > the > > > >> student as they are not going to be running the tests or even > thinking > > > >> about creating testable code but they'll be learning it > subliminally. > > > >> > > > >> And now that I've used the word, subliminal -- I just realized that > > was > > > my > > > >> goal all the time. In each example, given on a slide or as an > > exercise > > > >> there is the part that you are talking about discretely. Focusing > on > > > that > > > >> topic. However, the surrounding and supporting code is also > teaching > > > and > > > >> informing the student. That is the part that needs more love in > just > > > >> about > > > >> every example I've seen on the internet. > > > >> > > > >> If none of this made sense or you still don't agree (However, I > think > > > that > > > >> I'm tripping over myself agreeing with you.) please say so. The > point > > > of > > > >> this thread is to have a conversation where we can flesh out some > > > >> reasonable goals and then see if we can meet them. So if you are > > > reading > > > >> this and have an opinion, a point, a question then please, please > > chime > > > >> in. > > > >> > > > >> > > > >> > > > >> > > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < > > > omaha at python.org> > > > >> wrote: > > > >> > > > >> > > > > >> > I will make an observation - this is not meant to be critical but > I > > > want > > > >> > you (collectively) to chew on it. If I want to learn to be a > > > >> programmer I > > > >> > would look for a well structured learning path. If I want to > learn > > to > > > >> do > > > >> > things to make my life easier I am not sure I want to take the > same > > > >> path as > > > >> > if I wanted to learn to be a programmer. > > > >> > > > > >> > This note is sent in response to both Jeff's and Wes's posting. > > > Please > > > >> I > > > >> > am not trying to be critical but you guys are programmers by > > training > > > >> and > > > >> > vocation I am not. I don't have the time to learn to be a > > programmer. > > > >> > Unit Tests, what the heck are those? Why do I care? > > > >> > > > > >> > I ask a question on SO and a bunch of idiots jump up and are > > critical > > > >> for > > > >> > the fact that my code is not PEP 8 compliant - okay it makes them > > feel > > > >> good > > > >> > but it does not help me. For example, for the longest time ( say > 5 > > > >> years) > > > >> > when I opened and read a file I would do this > > > >> > > > > >> > mydata = open('some file path','r').readlines() > > > >> > > > > >> > That is not PEP 8 compliant (I don't think), but when I first > > Googled > > > to > > > >> > learn how to open a file and read the contents into a list - I > think > > > >> this > > > >> > is the webpage I found > > > >> > > > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php > > > >> > > > > >> > It was only this year that I took the time to learn the right way > > > >> > > > > >> > with open('some file path','r') as f_handle: > > > >> > data = f_handle.readlines() > > > >> > > > > >> > Why did I not bother learning the right way before this year, I > was > > > too > > > >> > busy learning how to do other things and it was working for me. > Why > > > >> did I > > > >> > even bother learning the right way, because I got sick of the way > > the > > > >> > conversation would get channeled if I had a question or comment > > about > > > >> > something and the pros would say well you are not opening the file > > > >> right. > > > >> > My response is who gives a drat, that is not the problem, but they > > are > > > >> > stuck on that issue. > > > >> > > > > >> > I am probably not explaining this well - certainly you want to > teach > > > >> > people the right way but I would be careful about how far you take > > it. > > > >> Our > > > >> > software is used by over 5,000 people and I have never written a > > unit > > > >> test > > > >> > (have no clue). I know that is not a big number but it is the > > amazing > > > >> > thing about Python. > > > >> > > > > >> > Don't cringe, drink some OJ! > > > >> > > > > >> > Just an observation. > > > >> > > > > >> > Happy New Year > > > >> > > > > >> > Burch > > > >> > ________________________________________ > > > >> > From: Omaha > on > > > >> behalf > > > >> > of Wes Turner via Omaha > > > >> > Sent: Sunday, January 3, 2016 8:12 PM > > > >> > To: Omaha Python Users Group > > > >> > Cc: Wes Turner > > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group > > > >> > > > > >> > https://wrdrd.com/docs/tools/#python > > > >> > * http://learnxinyminutes.com/docs/python/ # ./git > > > >> > > > > >> > "[omaha] For Python beginners" > > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html > > > >> > > > > >> > * http://docs.python.org/tutorial > > > >> > * > > > https://scipy-lectures.github.io/intro/language/python_language.html > > > >> > * https://github.com/audreyr/cookiecutter- > > > >> > pypackage > > > >> > > > > >> > > > > >> > *Create and test a package w/ git[hub] and CI" > > > >> > > > > >> > * Rosalind [Bioinformatics] exercises are outstanding > > > >> > 1. they're already set up for online grading/points > > > >> > 2. you get to learn about the domain > > > >> > * | Homepage: http://rosalind.info/ > > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind > > > >> > > > > >> > * "How to create and *test* a package for your Rosalind solutions" > > > >> > > > > >> > * "Testing as a core scientific process #126" > > > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 > > > >> > > > > >> > * TDD first! > > > >> > [null] hypothesis, code, test!, [commit] > > > >> > > > > >> > * > > > >> > > > > >> > > > > > > https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution > > > >> > > > > >> > * > > > >> > > > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd > > > >> > * > > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > > >> > > > > >> > [omaha] November 18 Meeting - Celebrate and Plan! > > > >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html > > > >> > > > > >> > > The software carpentry lessons are great (and designed for group > > > >> > instruction IIUC): > > > >> > > * https://software-carpentry.org/lessons.html > > > >> > > > > >> > ... > https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields > > : > > > >> > > > > >> > * > > > >> > > https://wrdrd.com/docs/consulting/software-development#computer-science > > > >> > To all of who offered to help in any form with giving Python > > > workshops @ > > > >> > DoSpace, > > > >> > > > > >> > I've been hammering out some ideas for a class targeted at those > new > > > to > > > >> > programming in particular. > > > >> > > > > >> > We should probably start a conversation about it and see what we > can > > > put > > > >> > together. > > > >> > > > > >> > Here are some goals, because we need to have something to measure > > > >> against: > > > >> > > > > >> > * should allow for students to do something with Python as soon as > > > >> possible > > > >> > - don't want them bored and inattentive. > > > >> > > > > >> > * The See/Do affect of examples should have the following > qualities: > > > >> > > > > >> > * be pep8 compliant (only deviating when we are teaching a > > specific > > > >> > topic.) > > > >> > > > > >> > * be easy to test. No example has print or input in the middle > > of a > > > >> > function other than main or one designed to deal with user > > > interaction. > > > >> > Too many examples mix I/O with processing leaving students with a > > > knack > > > >> for > > > >> > writing hard to test code. (All example code and problems should > > have > > > >> an > > > >> > associated test suite [py.test] to accompany them.) > > > >> > > > > >> > * Should emphasize DRY and only deviate when showing them undry > > > >> > situations and how to correct. > > > >> > > > > >> > * Early coding problems are often quite boring, so there should > be > > > >> some > > > >> > sort of setup for them, a backstory, to get the students invested > in > > > >> their > > > >> > solution. For Example - learning comparison operators -- "Sam is > a > > > >> young > > > >> > AI with untrained neural nets and we need to write a module to > help > > > >> train > > > >> > him had to organize two things so he can put them on a shelf in > > > order." > > > >> > Sounds a lot more interesting than write a function that > compares 2 > > > >> things > > > >> > and output them in order from smallest to largest. *yawn* > > > >> > > > > >> > > > > >> > So what are your ideas? What are you willing to help out with? > > We'll > > > >> need > > > >> > material reviewers, testers and trainers and TAs for actual > classes. > > > >> > > > > >> > > > > >> > I believe someone has offered to be our DoSpace ambassador. Sorry, > > > but I > > > >> > didn't write down your name at the meeting. Would you speak up > once > > > >> again. > > > >> > > > > >> > > > > >> > -- > > > >> > Best, > > > >> > > > > >> > Jeff Hinrichs > > > >> > 402.218.1473 > > > >> > _______________________________________________ > > > >> > Omaha Python Users Group mailing list > > > >> > Omaha at python.org > > > >> > https://mail.python.org/mailman/listinfo/omaha > > > >> > http://www.OmahaPython.org > > > >> > _______________________________________________ > > > >> > Omaha Python Users Group mailing list > > > >> > Omaha at python.org > > > >> > https://mail.python.org/mailman/listinfo/omaha > > > >> > http://www.OmahaPython.org > > > >> > _______________________________________________ > > > >> > Omaha Python Users Group mailing list > > > >> > Omaha at python.org > > > >> > https://mail.python.org/mailman/listinfo/omaha > > > >> > http://www.OmahaPython.org > > > >> > > > > >> > > > >> > > > >> > > > >> -- > > > >> Best, > > > >> > > > >> Jeff Hinrichs > > > >> 402.218.1473 > > > >> _______________________________________________ > > > >> Omaha Python Users Group mailing list > > > >> Omaha at python.org > > > >> https://mail.python.org/mailman/listinfo/omaha > > > >> http://www.OmahaPython.org > > > >> > > > > > > > > > > > _______________________________________________ > > > Omaha Python Users Group mailing list > > > Omaha at python.org > > > https://mail.python.org/mailman/listinfo/omaha > > > http://www.OmahaPython.org > > > > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > > > > > -- > Best, > > Jeff Hinrichs > 402.218.1473 > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From wes.turner at gmail.com Thu Jan 7 11:58:00 2016 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 7 Jan 2016 10:58:00 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: awesome-python-testing https://westurner.org/wiki/awesome-python-testing#python * https://learnxinyminutes.com/docs/python/ * https://www.class-central.com/search?q=python * https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks ( pip install -r requirements.txt [docker [ nbspawner ] ) * https://github.com/jupyter/jupyterhub/wiki/Spawners ... SoftwareCarpentry * http://software-carpentry.org/lessons/ * | Site: http://swcarpentry.github.io/python-novice-inflammation * | Src: https://github.com/swcarpentry/python-novice-inflammation * https://swcarpentry.github.io/slideshows/teaching-tips/index.html * #ActiveLearning On Thu, Jan 7, 2016 at 10:51 AM, Wes Turner wrote: > > > On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha > wrote: > >> I apologize for the delay. We release a new version of our software on >> Friday - switching to a C# harness with Python code when we need to be >> brilliant! >> >> >> I don't disagree with anything said below. I just wanted to be sure to >> advocate for the person who does not want to be perfect - just get >> something done. >> >> Here is an example of something that I think underscores the issues >> >> >> http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 >> >> I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a ton >> of knowledge to even think of the word parser. Further, I went and looked >> at the links and tried to read the example and I was feeling overwhelmed. >> So I get the best solution would be ShadowRanger's but second best works >> often. If you are building production code then developing an parser might >> be worth the investment but if you have this messy file you need now and >> you are a scientist then second best is probably your path. >> > > *Scipy-lectures, Python Documentation, awesome-python-testing* > > Rosalind.info has a number of introductory Python exercises and > algorithms. The glossary is really helpful. > > * | Glossary: http://rosalind.info/glossary/ > * | Docs: Rosalind Python Village problem list view: > http://rosalind.info/problems/list-view/?location=python-village > > * http://rosalind.info/problems/ini3/ # solved by 11511 > * Click to Expand > * http://rosalind.info/problems/ini6/ # "Dictionaries" solved by 5565 > > > * http://www.scipy-lectures.org/intro/language/python_language.html > * https://docs.python.org/2/tutorial/datastructures.html#sets > * > http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries > * https://docs.python.org/2/tutorial/datastructures.html#dictionaries > * > > > *Set Theory* > * | Wikipedia: https://en.wikipedia.org/wiki/Set_theory > * | Wrdrdocs: > https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory > ** | *RosalindProblem: Introduction to Set Operations: > http://rosalind.info/problems/seto/ > > *Graphs* > * | Wikipedia: > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/knowledge-engineering#graphs > > > *Topological Sorting* > * | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting > * Rosalind.info > Glossary > "Algo: Topological Sorting" > http://rosalind.info/glossary/algo-topological-sorting/ > > > >> We will talk more about this at the meeting. I will observe now and talk >> about this in the meeting that ppt slides are not so good for kids - okay >> for adults but not for kids. I make my kids write down anything that I >> think I want on a slide. >> > > > *Jupyter and Learning* > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning > * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter > * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive > storage > > > *nbgrader* > * | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader > * | Wrdrdtools: > https://wrdrd.com/docs/consulting/education-technology#nbgrader > > *RISE* > * | Src: https://github.com/damianavila/RISE > > RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal ] > > Reveal.js > * | Homepage: http://lab.hakim.se/reveal-js/#/ > * | Source: https://github.com/hakimel/reveal.js/ > > >> Please understand, I am not being critical I just want to make these >> observations because I am a cranky middle aged man. >> > > Are you preparing students for a problem-solving business-like scientific > context and/or for creative problem solving? > > * Linked Curricula Graphs > #RDFa #JSONLD > https://westurner.org/opengov/us/ne/index#linked-curricula-graphs > > > * *schema.org/Course * > #RDFa #JSONLD > https://westurner.org/opengov/us/ne/index#schema-org-course > > > > > .. index:: Graphs > .. _graphs: > > Graphs > ```````` > | Wikipedia: ``__ > | Wikipedia: ``__ > | Wikipedia: ``__ > | Docs: https://en.wikipedia.org/wiki/Conceptual_graph > | WikipediaCategory: ``__ > | WikipediaCategory: ``__ > | WikipediaCategory: ``__ > > A graph is a :term:`system` of nodes connected by edges; > an abstract data type for which there are a number of > suitable data structures. > > * A node has edges. > * An edge connects nodes. > > * Edges of **directed graphs** flow in only one direction; > and so require two edges with separate attributes > (e.g. 'magnitude', 'scale' > > | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph > > * Edges of an **undirected graph** connect nodes > in both directions (with the same attributes). > > | Wikipedia: ``__ > > * Graphs and :ref:`trees` are **traversed** (or *walked*); > according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`). > > * Graph nodes can be listed in many different *orders* > (or with a given *ordering*): > > * Preoder > * Inorder > * Postorder > * Level-order > > * There are many :ref:`data structure ` > representatations for :ref:`graphs`. > > * There are many data serialization/marshalling > formats for graphs: > > * Graph edge lists can be stored as adjacency :ref:`matrices `. > * :ref:`NetworkX` supports a number of graph storage formats. > * :ref:`RDF` is a :ref:`standard semantic web ` > :ref:`linked data` format for :ref:`graphs`. > * :ref:`JSON-LD` is a :ref:`standard semantic web ` > :ref:`linked data` format for :ref:`graphs`. > > * There are many :ref:`Graph Databases` and :ref:`triplestores` > for storing graphs. > > * A cartesian product has an interesting graph representation. > (See :ref:`compression algorithms`) > > > .. index:: NetworkX > .. _networkx: > > NetworkX > ~~~~~~~~~~~ > | Wikipedia: https://en.wikipedia.org/wiki/NetworkX > | Homepage: https://networkx.github.io/ > | Source: git https://github.com/networkx/networkx > | Docs: https://networkx.github.io/documentation.html > | Docs: https://networkx.github.io/documentation/latest/ > | Docs: https://networkx.github.io/documentation/latest/tutorial/ > | Docs: https://networkx.github.io/documentation/latest/reference/classes.html > | Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html > > NetworkX is an :ref:`open source` graph algorithms library > written in :ref:`Python`. > > >> >> ________________________________________ >> From: Omaha on >> behalf of Jeff Hinrichs - DM&T via Omaha >> Sent: Tuesday, January 5, 2016 12:42 AM >> To: Omaha Python Users Group >> Cc: Jeff Hinrichs - DM&T >> Subject: Re: [omaha] Python Workshops @ DoSpace Group >> >> @Steve, given the enthusiasm for youth programming at the last meeting, >> the >> first course I thought we'd work on, py100, for beginning / new >> programmers >> who are interested in learning Python with a class time of 2 hours (1.5 >> actual) with a goal of a lab/student exercise every 12 minutes. I figure >> on average 8 minutes per lab giving 4 minutes of lecture and slides per >> lab. All of which is complete speculation at this point but I believe the >> twice as much lab as talk is a valid starting point. *wink* It is a >> very >> fundamental programming with Python where one of our goals should be to do >> no harm if an attendee wants to go farther. >> >> @adam, There is absolutely no reason why we couldn't create classes for >> other categories of students. My working idea is PySchool, some courses >> (if we get there) can have pre-requisites others ,like py100, will have no >> pre-reqs. >> >> >> >> On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha >> wrote: >> >> > Adam brought up a good point to consider. Are you aiming for people >> with >> > little to no programming experience (which is what I was thinking) or >> > experienced programmers wanting to learn python? >> > >> > Steve >> > >> > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha > > >> > wrote: >> > >> > > *I should clarify this terrible sentence:* >> > > "For example, if you have defined methods/functions and tell them to >> > create >> > > their own, I think it's far more likely that they'll copy the way >> you've >> > > created a method/function, then to fill our it's inner workings. " >> > > >> > > *What I meant to say was:* >> > > "For example, if you have defined methods/functions and tell them to >> > create >> > > their own, I think it's far more likely that students would enjoy >> copying >> > > the way these are already created in the file then filling our the >> inner >> > > workings of one created for them." >> > > >> > > >> > > >> > > >> > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: >> > > >> > > > When I go to a workshop like this, I tend to have more fun/interest >> if >> > > I'm >> > > > challenged. While I appreciate the fact that you'd like to >> introduce >> > > > excellent coding practices by having a majority of the file coded, I >> > > > encourage you to leave a good chunk to the user. For example, if >> you >> > > have >> > > > defined methods/functions and tell them to create their own, I think >> > it's >> > > > far more likely that they'll copy the way you've created a >> > > method/function, >> > > > then to fill our it's inner workings. Perhaps, that's already what >> you >> > > > were thinking, but I just wanted to clarify. >> > > > >> > > > Learning Python was extremely applicable when I was solving ACM-like >> > > > algorithm challenges - I like the idea of converting programmers >> into >> > > > python devs - maybe even in other fields. I think that a >> > > challenge/problem >> > > > like that where a programmer can clearly see python's advantages >> over >> > > other >> > > > languages would be a valuable asset to the class. >> > > > >> > > > With all this said, I'm still a relative beginner - maybe even your >> > > target >> > > > demo - so take what I say with a grain of salt. >> > > > >> > > > Adam Schaal >> > > > >> > > > >> > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < >> > > > omaha at python.org> wrote: >> > > > >> > > >> Burch, >> > > >> I think you are hitting the nail on the head. And it is good that >> you >> > > are >> > > >> pointing out that the goal might appear to be too geared to a >> > > programming >> > > >> as a profession. I am glad that you said something, because I am >> > > looking >> > > >> to approach this the other way round. That is to inspire >> programming >> > in >> > > >> other professions. With the current push on in the sciences for >> > > >> repeatable results in data analysis, I would think that within the >> > next >> > > >> decade that anyone who works with data for a profession (not >> > > programmer's >> > > >> but analysts, scientists, etc.) would be ill equipped if they can't >> > > >> wrangle >> > > >> data. >> > > >> >> > > >> To that end, many just like you and myself (when I attended >> college, >> > you >> > > >> only received 1 credit hour for a language class. They were >> > graduating >> > > >> Computer Scientists not programmers.) pick up a language or other >> > tool, >> > > >> based on our ability and the reference material that we have at >> hand >> > (or >> > > >> online). And that first exposure sits like concrete, as you >> stated. >> > The >> > > >> example you sited about file handling is very insightful and I >> think >> > > lends >> > > >> credence to my goal of making the first contact for those new to >> > > >> programming as positive as we can. >> > > >> >> > > >> My goal is to have the examples that we show to the class be as >> good >> > as >> > > we >> > > >> can make them. Be written in a way that lends itself to good >> > convention >> > > >> and best current practices. So that when we show students example >> > code >> > > -- >> > > >> it is of good quality, not a questionable example that was thrown >> > > together >> > > >> to demonstrate one thing while completely ignoring all other good >> > > >> practices. I believe the examples we pick for use in these still >> > > >> fictional >> > > >> classes should show not only what we want to demonstrate on the >> micro >> > > >> level >> > > >> but also be a good example on the macro level. So that if a >> > > >> student/attendee used one of our examples as a starting point for >> > > >> something >> > > >> bigger, they would be on good footing. When people first start >> > > >> programming we don't write code as much as borrow it from other >> > places. >> > > >> *wink* My goal is to create the best quality code examples, that >> > they >> > > >> can >> > > >> borrow for other things. >> > > >> >> > > >> Also, for beginners a blank file is too much. The examples I've >> come >> > up >> > > >> with so far require that they fill in the missing pieces, >> concatenate >> > > some >> > > >> strings here, finish out the function body there, but the rest of >> the >> > > code >> > > >> should be stellar because we wrote it for them. Doc strings where >> > they >> > > >> belong, conventions followed for naming variables (no more i, j, k >> > which >> > > >> dominate in Fortran or x and y like it is a math problem)with >> > > descriptive >> > > >> names. So that when the time comes for a student to create a >> variable >> > > out >> > > >> of thin air they will be more likely to be descriptive too. But >> even >> > if >> > > >> they don't use descriptive names students won't be berated, what >> > matters >> > > >> is >> > > >> that code does what is intended. >> > > >> >> > > >> As for testing, I am not going to try and sell you on it. (Like >> > backup >> > > >> and >> > > >> restore, most are not concerned until the ugly happens.) I am not >> even >> > > >> planning on talking about it in these opening workshops. However, >> > that >> > > >> doesn't mean I am going to favor code examples that are not >> testable. >> > > Far >> > > >> from it. Everyone of my current example exercises has associated >> > tests. >> > > >> The students won't run the tests but my agent, sam will. When they >> > > finish >> > > >> an exercise I'll know, as sam will let me know their code is >> running >> > and >> > > >> passing the tests. That also requires that the creator of the >> > specific >> > > >> lab >> > > >> write in a way that is testable. However, none of this is a >> burden to >> > > the >> > > >> student as they are not going to be running the tests or even >> thinking >> > > >> about creating testable code but they'll be learning it >> subliminally. >> > > >> >> > > >> And now that I've used the word, subliminal -- I just realized that >> > was >> > > my >> > > >> goal all the time. In each example, given on a slide or as an >> > exercise >> > > >> there is the part that you are talking about discretely. Focusing >> on >> > > that >> > > >> topic. However, the surrounding and supporting code is also >> teaching >> > > and >> > > >> informing the student. That is the part that needs more love in >> just >> > > >> about >> > > >> every example I've seen on the internet. >> > > >> >> > > >> If none of this made sense or you still don't agree (However, I >> think >> > > that >> > > >> I'm tripping over myself agreeing with you.) please say so. The >> point >> > > of >> > > >> this thread is to have a conversation where we can flesh out some >> > > >> reasonable goals and then see if we can meet them. So if you are >> > > reading >> > > >> this and have an opinion, a point, a question then please, please >> > chime >> > > >> in. >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < >> > > omaha at python.org> >> > > >> wrote: >> > > >> >> > > >> > >> > > >> > I will make an observation - this is not meant to be critical >> but I >> > > want >> > > >> > you (collectively) to chew on it. If I want to learn to be a >> > > >> programmer I >> > > >> > would look for a well structured learning path. If I want to >> learn >> > to >> > > >> do >> > > >> > things to make my life easier I am not sure I want to take the >> same >> > > >> path as >> > > >> > if I wanted to learn to be a programmer. >> > > >> > >> > > >> > This note is sent in response to both Jeff's and Wes's posting. >> > > Please >> > > >> I >> > > >> > am not trying to be critical but you guys are programmers by >> > training >> > > >> and >> > > >> > vocation I am not. I don't have the time to learn to be a >> > programmer. >> > > >> > Unit Tests, what the heck are those? Why do I care? >> > > >> > >> > > >> > I ask a question on SO and a bunch of idiots jump up and are >> > critical >> > > >> for >> > > >> > the fact that my code is not PEP 8 compliant - okay it makes them >> > feel >> > > >> good >> > > >> > but it does not help me. For example, for the longest time ( >> say 5 >> > > >> years) >> > > >> > when I opened and read a file I would do this >> > > >> > >> > > >> > mydata = open('some file path','r').readlines() >> > > >> > >> > > >> > That is not PEP 8 compliant (I don't think), but when I first >> > Googled >> > > to >> > > >> > learn how to open a file and read the contents into a list - I >> think >> > > >> this >> > > >> > is the webpage I found >> > > >> > >> > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php >> > > >> > >> > > >> > It was only this year that I took the time to learn the right way >> > > >> > >> > > >> > with open('some file path','r') as f_handle: >> > > >> > data = f_handle.readlines() >> > > >> > >> > > >> > Why did I not bother learning the right way before this year, I >> was >> > > too >> > > >> > busy learning how to do other things and it was working for me. >> Why >> > > >> did I >> > > >> > even bother learning the right way, because I got sick of the way >> > the >> > > >> > conversation would get channeled if I had a question or comment >> > about >> > > >> > something and the pros would say well you are not opening the >> file >> > > >> right. >> > > >> > My response is who gives a drat, that is not the problem, but >> they >> > are >> > > >> > stuck on that issue. >> > > >> > >> > > >> > I am probably not explaining this well - certainly you want to >> teach >> > > >> > people the right way but I would be careful about how far you >> take >> > it. >> > > >> Our >> > > >> > software is used by over 5,000 people and I have never written a >> > unit >> > > >> test >> > > >> > (have no clue). I know that is not a big number but it is the >> > amazing >> > > >> > thing about Python. >> > > >> > >> > > >> > Don't cringe, drink some OJ! >> > > >> > >> > > >> > Just an observation. >> > > >> > >> > > >> > Happy New Year >> > > >> > >> > > >> > Burch >> > > >> > ________________________________________ >> > > >> > From: Omaha >> on >> > > >> behalf >> > > >> > of Wes Turner via Omaha >> > > >> > Sent: Sunday, January 3, 2016 8:12 PM >> > > >> > To: Omaha Python Users Group >> > > >> > Cc: Wes Turner >> > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group >> > > >> > >> > > >> > https://wrdrd.com/docs/tools/#python >> > > >> > * http://learnxinyminutes.com/docs/python/ # ./git >> > > >> > >> > > >> > "[omaha] For Python beginners" >> > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html >> > > >> > >> > > >> > * http://docs.python.org/tutorial >> > > >> > * >> > > https://scipy-lectures.github.io/intro/language/python_language.html >> > > >> > * https://github.com/audreyr/cookiecutter- >> > > >> > pypackage >> > > >> > >> > > >> > >> > > >> > *Create and test a package w/ git[hub] and CI" >> > > >> > >> > > >> > * Rosalind [Bioinformatics] exercises are outstanding >> > > >> > 1. they're already set up for online grading/points >> > > >> > 2. you get to learn about the domain >> > > >> > * | Homepage: http://rosalind.info/ >> > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind >> > > >> > >> > > >> > * "How to create and *test* a package for your Rosalind >> solutions" >> > > >> > >> > > >> > * "Testing as a core scientific process #126" >> > > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 >> > > >> > >> > > >> > * TDD first! >> > > >> > [null] hypothesis, code, test!, [commit] >> > > >> > >> > > >> > * >> > > >> > >> > > >> >> > > >> > >> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution >> > > >> > >> > > >> > * >> > > >> > >> > > >> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd >> > > >> > * >> > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader >> > > >> > >> > > >> > [omaha] November 18 Meeting - Celebrate and Plan! >> > > >> > >> https://mail.python.org/pipermail/omaha/2015-November/001943.html >> > > >> > >> > > >> > > The software carpentry lessons are great (and designed for >> group >> > > >> > instruction IIUC): >> > > >> > > * https://software-carpentry.org/lessons.html >> > > >> > >> > > >> > ... >> https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields >> > : >> > > >> > >> > > >> > * >> > > >> >> > https://wrdrd.com/docs/consulting/software-development#computer-science >> > > >> > To all of who offered to help in any form with giving Python >> > > workshops @ >> > > >> > DoSpace, >> > > >> > >> > > >> > I've been hammering out some ideas for a class targeted at those >> new >> > > to >> > > >> > programming in particular. >> > > >> > >> > > >> > We should probably start a conversation about it and see what we >> can >> > > put >> > > >> > together. >> > > >> > >> > > >> > Here are some goals, because we need to have something to measure >> > > >> against: >> > > >> > >> > > >> > * should allow for students to do something with Python as soon >> as >> > > >> possible >> > > >> > - don't want them bored and inattentive. >> > > >> > >> > > >> > * The See/Do affect of examples should have the following >> qualities: >> > > >> > >> > > >> > * be pep8 compliant (only deviating when we are teaching a >> > specific >> > > >> > topic.) >> > > >> > >> > > >> > * be easy to test. No example has print or input in the middle >> > of a >> > > >> > function other than main or one designed to deal with user >> > > interaction. >> > > >> > Too many examples mix I/O with processing leaving students with a >> > > knack >> > > >> for >> > > >> > writing hard to test code. (All example code and problems should >> > have >> > > >> an >> > > >> > associated test suite [py.test] to accompany them.) >> > > >> > >> > > >> > * Should emphasize DRY and only deviate when showing them undry >> > > >> > situations and how to correct. >> > > >> > >> > > >> > * Early coding problems are often quite boring, so there >> should be >> > > >> some >> > > >> > sort of setup for them, a backstory, to get the students >> invested in >> > > >> their >> > > >> > solution. For Example - learning comparison operators -- "Sam >> is a >> > > >> young >> > > >> > AI with untrained neural nets and we need to write a module to >> help >> > > >> train >> > > >> > him had to organize two things so he can put them on a shelf in >> > > order." >> > > >> > Sounds a lot more interesting than write a function that >> compares 2 >> > > >> things >> > > >> > and output them in order from smallest to largest. *yawn* >> > > >> > >> > > >> > >> > > >> > So what are your ideas? What are you willing to help out with? >> > We'll >> > > >> need >> > > >> > material reviewers, testers and trainers and TAs for actual >> classes. >> > > >> > >> > > >> > >> > > >> > I believe someone has offered to be our DoSpace ambassador. >> Sorry, >> > > but I >> > > >> > didn't write down your name at the meeting. Would you speak up >> once >> > > >> again. >> > > >> > >> > > >> > >> > > >> > -- >> > > >> > Best, >> > > >> > >> > > >> > Jeff Hinrichs >> > > >> > 402.218.1473 >> > > >> > _______________________________________________ >> > > >> > Omaha Python Users Group mailing list >> > > >> > Omaha at python.org >> > > >> > https://mail.python.org/mailman/listinfo/omaha >> > > >> > http://www.OmahaPython.org >> > > >> > _______________________________________________ >> > > >> > Omaha Python Users Group mailing list >> > > >> > Omaha at python.org >> > > >> > https://mail.python.org/mailman/listinfo/omaha >> > > >> > http://www.OmahaPython.org >> > > >> > _______________________________________________ >> > > >> > Omaha Python Users Group mailing list >> > > >> > Omaha at python.org >> > > >> > https://mail.python.org/mailman/listinfo/omaha >> > > >> > http://www.OmahaPython.org >> > > >> > >> > > >> >> > > >> >> > > >> >> > > >> -- >> > > >> Best, >> > > >> >> > > >> Jeff Hinrichs >> > > >> 402.218.1473 >> > > >> _______________________________________________ >> > > >> Omaha Python Users Group mailing list >> > > >> Omaha at python.org >> > > >> https://mail.python.org/mailman/listinfo/omaha >> > > >> http://www.OmahaPython.org >> > > >> >> > > > >> > > > >> > > _______________________________________________ >> > > Omaha Python Users Group mailing list >> > > Omaha at python.org >> > > https://mail.python.org/mailman/listinfo/omaha >> > > http://www.OmahaPython.org >> > > >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> > >> >> >> >> -- >> Best, >> >> Jeff Hinrichs >> 402.218.1473 >> _______________________________________________ >> Omaha Python Users Group mailing list >> Omaha at python.org >> https://mail.python.org/mailman/listinfo/omaha >> http://www.OmahaPython.org >> _______________________________________________ >> Omaha Python Users Group mailing list >> Omaha at python.org >> https://mail.python.org/mailman/listinfo/omaha >> http://www.OmahaPython.org >> > > From wes.turner at gmail.com Thu Jan 7 12:05:33 2016 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 7 Jan 2016 11:05:33 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: HTML in git branches pretty much wins as far as maintainability and change control, IMO. * GitHub Pages (gh-pages branch, CNAME, [...]) * | Wrdrddocs: https://wrdrd.com/docs/consulting/education-technology#github-pages * Free for Open Source Projects * Public * pgs * | Src: https://github.com/westurner/pgs * Free and Open Source * Bottle Python Microframework Web Framework * (This works locally with one repo * One could layer e.g. basic auth (and/or integrate with Jupyter Authenticators) * https://github.com/jupyter/jupyterhub/wiki/Authenticators * MediaWiki, GitHub, Google, Local + Google Publishing with a DOI should also be so easy: * | Wrdrddocs: https://wrdrd.com/docs/consulting/education-technology#publishing * | Wrdrddocs: https://wrdrd.com/docs/tools/index#pgs On Thu, Jan 7, 2016 at 10:58 AM, Wes Turner wrote: > awesome-python-testing > https://westurner.org/wiki/awesome-python-testing#python > > * https://learnxinyminutes.com/docs/python/ > * https://www.class-central.com/search?q=python > > * > https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks > ( pip install -r requirements.txt [docker [ nbspawner ] ) > * https://github.com/jupyter/jupyterhub/wiki/Spawners > > > ... > > SoftwareCarpentry > > * http://software-carpentry.org/lessons/ > * | Site: http://swcarpentry.github.io/python-novice-inflammation > * | Src: https://github.com/swcarpentry/python-novice-inflammation > > * https://swcarpentry.github.io/slideshows/teaching-tips/index.html > > * #ActiveLearning > > > On Thu, Jan 7, 2016 at 10:51 AM, Wes Turner wrote: > >> >> >> On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha >> wrote: >> >>> I apologize for the delay. We release a new version of our software on >>> Friday - switching to a C# harness with Python code when we need to be >>> brilliant! >>> >>> >>> I don't disagree with anything said below. I just wanted to be sure to >>> advocate for the person who does not want to be perfect - just get >>> something done. >>> >>> Here is an example of something that I think underscores the issues >>> >>> >>> http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 >>> >>> I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a ton >>> of knowledge to even think of the word parser. Further, I went and looked >>> at the links and tried to read the example and I was feeling overwhelmed. >>> So I get the best solution would be ShadowRanger's but second best works >>> often. If you are building production code then developing an parser might >>> be worth the investment but if you have this messy file you need now and >>> you are a scientist then second best is probably your path. >>> >> >> *Scipy-lectures, Python Documentation, awesome-python-testing* >> >> Rosalind.info has a number of introductory Python exercises and >> algorithms. The glossary is really helpful. >> >> * | Glossary: http://rosalind.info/glossary/ >> * | Docs: Rosalind Python Village problem list view: >> http://rosalind.info/problems/list-view/?location=python-village >> >> * http://rosalind.info/problems/ini3/ # solved by 11511 >> * Click to Expand >> * http://rosalind.info/problems/ini6/ # "Dictionaries" solved by 5565 >> >> >> * http://www.scipy-lectures.org/intro/language/python_language.html >> * https://docs.python.org/2/tutorial/datastructures.html#sets >> * >> http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries >> * https://docs.python.org/2/tutorial/datastructures.html#dictionaries >> * >> >> >> *Set Theory* >> * | Wikipedia: https://en.wikipedia.org/wiki/Set_theory >> * | Wrdrdocs: >> https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory >> ** | *RosalindProblem: Introduction to Set Operations: >> http://rosalind.info/problems/seto/ >> >> *Graphs* >> * | Wikipedia: >> * | Wrdrddocs: >> https://wrdrd.com/docs/consulting/knowledge-engineering#graphs >> >> >> *Topological Sorting* >> * | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting >> * | Wrdrddocs: >> https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting >> * Rosalind.info > Glossary > "Algo: Topological Sorting" >> http://rosalind.info/glossary/algo-topological-sorting/ >> >> >> >>> We will talk more about this at the meeting. I will observe now and >>> talk about this in the meeting that ppt slides are not so good for kids - >>> okay for adults but not for kids. I make my kids write down anything that >>> I think I want on a slide. >>> >> >> >> *Jupyter and Learning* >> * | Wrdrddocs: >> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning >> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter >> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive >> storage >> >> >> *nbgrader* >> * | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader >> * | Wrdrdtools: >> https://wrdrd.com/docs/consulting/education-technology#nbgrader >> >> *RISE* >> * | Src: https://github.com/damianavila/RISE >> >> RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal ] >> >> Reveal.js >> * | Homepage: http://lab.hakim.se/reveal-js/#/ >> * | Source: https://github.com/hakimel/reveal.js/ >> >> >>> Please understand, I am not being critical I just want to make these >>> observations because I am a cranky middle aged man. >>> >> >> Are you preparing students for a problem-solving business-like scientific >> context and/or for creative problem solving? >> >> * Linked Curricula Graphs >> #RDFa #JSONLD >> https://westurner.org/opengov/us/ne/index#linked-curricula-graphs >> >> >> * *schema.org/Course * >> #RDFa #JSONLD >> https://westurner.org/opengov/us/ne/index#schema-org-course >> >> >> >> >> .. index:: Graphs >> .. _graphs: >> >> Graphs >> ```````` >> | Wikipedia: ``__ >> | Wikipedia: ``__ >> | Wikipedia: ``__ >> | Docs: https://en.wikipedia.org/wiki/Conceptual_graph >> | WikipediaCategory: ``__ >> | WikipediaCategory: ``__ >> | WikipediaCategory: ``__ >> >> A graph is a :term:`system` of nodes connected by edges; >> an abstract data type for which there are a number of >> suitable data structures. >> >> * A node has edges. >> * An edge connects nodes. >> >> * Edges of **directed graphs** flow in only one direction; >> and so require two edges with separate attributes >> (e.g. 'magnitude', 'scale' >> >> | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph >> >> * Edges of an **undirected graph** connect nodes >> in both directions (with the same attributes). >> >> | Wikipedia: ``__ >> >> * Graphs and :ref:`trees` are **traversed** (or *walked*); >> according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`). >> >> * Graph nodes can be listed in many different *orders* >> (or with a given *ordering*): >> >> * Preoder >> * Inorder >> * Postorder >> * Level-order >> >> * There are many :ref:`data structure ` >> representatations for :ref:`graphs`. >> >> * There are many data serialization/marshalling >> formats for graphs: >> >> * Graph edge lists can be stored as adjacency :ref:`matrices `. >> * :ref:`NetworkX` supports a number of graph storage formats. >> * :ref:`RDF` is a :ref:`standard semantic web ` >> :ref:`linked data` format for :ref:`graphs`. >> * :ref:`JSON-LD` is a :ref:`standard semantic web ` >> :ref:`linked data` format for :ref:`graphs`. >> >> * There are many :ref:`Graph Databases` and :ref:`triplestores` >> for storing graphs. >> >> * A cartesian product has an interesting graph representation. >> (See :ref:`compression algorithms`) >> >> >> .. index:: NetworkX >> .. _networkx: >> >> NetworkX >> ~~~~~~~~~~~ >> | Wikipedia: https://en.wikipedia.org/wiki/NetworkX >> | Homepage: https://networkx.github.io/ >> | Source: git https://github.com/networkx/networkx >> | Docs: https://networkx.github.io/documentation.html >> | Docs: https://networkx.github.io/documentation/latest/ >> | Docs: https://networkx.github.io/documentation/latest/tutorial/ >> | Docs: https://networkx.github.io/documentation/latest/reference/classes.html >> | Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html >> >> NetworkX is an :ref:`open source` graph algorithms library >> written in :ref:`Python`. >> >> >>> >>> ________________________________________ >>> From: Omaha on >>> behalf of Jeff Hinrichs - DM&T via Omaha >>> Sent: Tuesday, January 5, 2016 12:42 AM >>> To: Omaha Python Users Group >>> Cc: Jeff Hinrichs - DM&T >>> Subject: Re: [omaha] Python Workshops @ DoSpace Group >>> >>> @Steve, given the enthusiasm for youth programming at the last meeting, >>> the >>> first course I thought we'd work on, py100, for beginning / new >>> programmers >>> who are interested in learning Python with a class time of 2 hours (1.5 >>> actual) with a goal of a lab/student exercise every 12 minutes. I figure >>> on average 8 minutes per lab giving 4 minutes of lecture and slides per >>> lab. All of which is complete speculation at this point but I believe >>> the >>> twice as much lab as talk is a valid starting point. *wink* It is a >>> very >>> fundamental programming with Python where one of our goals should be to >>> do >>> no harm if an attendee wants to go farther. >>> >>> @adam, There is absolutely no reason why we couldn't create classes for >>> other categories of students. My working idea is PySchool, some courses >>> (if we get there) can have pre-requisites others ,like py100, will have >>> no >>> pre-reqs. >>> >>> >>> >>> On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha >>> wrote: >>> >>> > Adam brought up a good point to consider. Are you aiming for people >>> with >>> > little to no programming experience (which is what I was thinking) or >>> > experienced programmers wanting to learn python? >>> > >>> > Steve >>> > >>> > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha < >>> omaha at python.org> >>> > wrote: >>> > >>> > > *I should clarify this terrible sentence:* >>> > > "For example, if you have defined methods/functions and tell them to >>> > create >>> > > their own, I think it's far more likely that they'll copy the way >>> you've >>> > > created a method/function, then to fill our it's inner workings. " >>> > > >>> > > *What I meant to say was:* >>> > > "For example, if you have defined methods/functions and tell them to >>> > create >>> > > their own, I think it's far more likely that students would enjoy >>> copying >>> > > the way these are already created in the file then filling our the >>> inner >>> > > workings of one created for them." >>> > > >>> > > >>> > > >>> > > >>> > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: >>> > > >>> > > > When I go to a workshop like this, I tend to have more >>> fun/interest if >>> > > I'm >>> > > > challenged. While I appreciate the fact that you'd like to >>> introduce >>> > > > excellent coding practices by having a majority of the file coded, >>> I >>> > > > encourage you to leave a good chunk to the user. For example, if >>> you >>> > > have >>> > > > defined methods/functions and tell them to create their own, I >>> think >>> > it's >>> > > > far more likely that they'll copy the way you've created a >>> > > method/function, >>> > > > then to fill our it's inner workings. Perhaps, that's already >>> what you >>> > > > were thinking, but I just wanted to clarify. >>> > > > >>> > > > Learning Python was extremely applicable when I was solving >>> ACM-like >>> > > > algorithm challenges - I like the idea of converting programmers >>> into >>> > > > python devs - maybe even in other fields. I think that a >>> > > challenge/problem >>> > > > like that where a programmer can clearly see python's advantages >>> over >>> > > other >>> > > > languages would be a valuable asset to the class. >>> > > > >>> > > > With all this said, I'm still a relative beginner - maybe even your >>> > > target >>> > > > demo - so take what I say with a grain of salt. >>> > > > >>> > > > Adam Schaal >>> > > > >>> > > > >>> > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < >>> > > > omaha at python.org> wrote: >>> > > > >>> > > >> Burch, >>> > > >> I think you are hitting the nail on the head. And it is good that >>> you >>> > > are >>> > > >> pointing out that the goal might appear to be too geared to a >>> > > programming >>> > > >> as a profession. I am glad that you said something, because I am >>> > > looking >>> > > >> to approach this the other way round. That is to inspire >>> programming >>> > in >>> > > >> other professions. With the current push on in the sciences for >>> > > >> repeatable results in data analysis, I would think that within the >>> > next >>> > > >> decade that anyone who works with data for a profession (not >>> > > programmer's >>> > > >> but analysts, scientists, etc.) would be ill equipped if they >>> can't >>> > > >> wrangle >>> > > >> data. >>> > > >> >>> > > >> To that end, many just like you and myself (when I attended >>> college, >>> > you >>> > > >> only received 1 credit hour for a language class. They were >>> > graduating >>> > > >> Computer Scientists not programmers.) pick up a language or other >>> > tool, >>> > > >> based on our ability and the reference material that we have at >>> hand >>> > (or >>> > > >> online). And that first exposure sits like concrete, as you >>> stated. >>> > The >>> > > >> example you sited about file handling is very insightful and I >>> think >>> > > lends >>> > > >> credence to my goal of making the first contact for those new to >>> > > >> programming as positive as we can. >>> > > >> >>> > > >> My goal is to have the examples that we show to the class be as >>> good >>> > as >>> > > we >>> > > >> can make them. Be written in a way that lends itself to good >>> > convention >>> > > >> and best current practices. So that when we show students example >>> > code >>> > > -- >>> > > >> it is of good quality, not a questionable example that was thrown >>> > > together >>> > > >> to demonstrate one thing while completely ignoring all other good >>> > > >> practices. I believe the examples we pick for use in these still >>> > > >> fictional >>> > > >> classes should show not only what we want to demonstrate on the >>> micro >>> > > >> level >>> > > >> but also be a good example on the macro level. So that if a >>> > > >> student/attendee used one of our examples as a starting point for >>> > > >> something >>> > > >> bigger, they would be on good footing. When people first start >>> > > >> programming we don't write code as much as borrow it from other >>> > places. >>> > > >> *wink* My goal is to create the best quality code examples, that >>> > they >>> > > >> can >>> > > >> borrow for other things. >>> > > >> >>> > > >> Also, for beginners a blank file is too much. The examples I've >>> come >>> > up >>> > > >> with so far require that they fill in the missing pieces, >>> concatenate >>> > > some >>> > > >> strings here, finish out the function body there, but the rest of >>> the >>> > > code >>> > > >> should be stellar because we wrote it for them. Doc strings where >>> > they >>> > > >> belong, conventions followed for naming variables (no more i, j, k >>> > which >>> > > >> dominate in Fortran or x and y like it is a math problem)with >>> > > descriptive >>> > > >> names. So that when the time comes for a student to create a >>> variable >>> > > out >>> > > >> of thin air they will be more likely to be descriptive too. But >>> even >>> > if >>> > > >> they don't use descriptive names students won't be berated, what >>> > matters >>> > > >> is >>> > > >> that code does what is intended. >>> > > >> >>> > > >> As for testing, I am not going to try and sell you on it. (Like >>> > backup >>> > > >> and >>> > > >> restore, most are not concerned until the ugly happens.) I am not >>> even >>> > > >> planning on talking about it in these opening workshops. However, >>> > that >>> > > >> doesn't mean I am going to favor code examples that are not >>> testable. >>> > > Far >>> > > >> from it. Everyone of my current example exercises has associated >>> > tests. >>> > > >> The students won't run the tests but my agent, sam will. When >>> they >>> > > finish >>> > > >> an exercise I'll know, as sam will let me know their code is >>> running >>> > and >>> > > >> passing the tests. That also requires that the creator of the >>> > specific >>> > > >> lab >>> > > >> write in a way that is testable. However, none of this is a >>> burden to >>> > > the >>> > > >> student as they are not going to be running the tests or even >>> thinking >>> > > >> about creating testable code but they'll be learning it >>> subliminally. >>> > > >> >>> > > >> And now that I've used the word, subliminal -- I just realized >>> that >>> > was >>> > > my >>> > > >> goal all the time. In each example, given on a slide or as an >>> > exercise >>> > > >> there is the part that you are talking about discretely. >>> Focusing on >>> > > that >>> > > >> topic. However, the surrounding and supporting code is also >>> teaching >>> > > and >>> > > >> informing the student. That is the part that needs more love in >>> just >>> > > >> about >>> > > >> every example I've seen on the internet. >>> > > >> >>> > > >> If none of this made sense or you still don't agree (However, I >>> think >>> > > that >>> > > >> I'm tripping over myself agreeing with you.) please say so. The >>> point >>> > > of >>> > > >> this thread is to have a conversation where we can flesh out some >>> > > >> reasonable goals and then see if we can meet them. So if you are >>> > > reading >>> > > >> this and have an opinion, a point, a question then please, please >>> > chime >>> > > >> in. >>> > > >> >>> > > >> >>> > > >> >>> > > >> >>> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < >>> > > omaha at python.org> >>> > > >> wrote: >>> > > >> >>> > > >> > >>> > > >> > I will make an observation - this is not meant to be critical >>> but I >>> > > want >>> > > >> > you (collectively) to chew on it. If I want to learn to be a >>> > > >> programmer I >>> > > >> > would look for a well structured learning path. If I want to >>> learn >>> > to >>> > > >> do >>> > > >> > things to make my life easier I am not sure I want to take the >>> same >>> > > >> path as >>> > > >> > if I wanted to learn to be a programmer. >>> > > >> > >>> > > >> > This note is sent in response to both Jeff's and Wes's posting. >>> > > Please >>> > > >> I >>> > > >> > am not trying to be critical but you guys are programmers by >>> > training >>> > > >> and >>> > > >> > vocation I am not. I don't have the time to learn to be a >>> > programmer. >>> > > >> > Unit Tests, what the heck are those? Why do I care? >>> > > >> > >>> > > >> > I ask a question on SO and a bunch of idiots jump up and are >>> > critical >>> > > >> for >>> > > >> > the fact that my code is not PEP 8 compliant - okay it makes >>> them >>> > feel >>> > > >> good >>> > > >> > but it does not help me. For example, for the longest time ( >>> say 5 >>> > > >> years) >>> > > >> > when I opened and read a file I would do this >>> > > >> > >>> > > >> > mydata = open('some file path','r').readlines() >>> > > >> > >>> > > >> > That is not PEP 8 compliant (I don't think), but when I first >>> > Googled >>> > > to >>> > > >> > learn how to open a file and read the contents into a list - I >>> think >>> > > >> this >>> > > >> > is the webpage I found >>> > > >> > >>> > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php >>> > > >> > >>> > > >> > It was only this year that I took the time to learn the right >>> way >>> > > >> > >>> > > >> > with open('some file path','r') as f_handle: >>> > > >> > data = f_handle.readlines() >>> > > >> > >>> > > >> > Why did I not bother learning the right way before this year, I >>> was >>> > > too >>> > > >> > busy learning how to do other things and it was working for >>> me. Why >>> > > >> did I >>> > > >> > even bother learning the right way, because I got sick of the >>> way >>> > the >>> > > >> > conversation would get channeled if I had a question or comment >>> > about >>> > > >> > something and the pros would say well you are not opening the >>> file >>> > > >> right. >>> > > >> > My response is who gives a drat, that is not the problem, but >>> they >>> > are >>> > > >> > stuck on that issue. >>> > > >> > >>> > > >> > I am probably not explaining this well - certainly you want to >>> teach >>> > > >> > people the right way but I would be careful about how far you >>> take >>> > it. >>> > > >> Our >>> > > >> > software is used by over 5,000 people and I have never written a >>> > unit >>> > > >> test >>> > > >> > (have no clue). I know that is not a big number but it is the >>> > amazing >>> > > >> > thing about Python. >>> > > >> > >>> > > >> > Don't cringe, drink some OJ! >>> > > >> > >>> > > >> > Just an observation. >>> > > >> > >>> > > >> > Happy New Year >>> > > >> > >>> > > >> > Burch >>> > > >> > ________________________________________ >>> > > >> > From: Omaha >>> on >>> > > >> behalf >>> > > >> > of Wes Turner via Omaha >>> > > >> > Sent: Sunday, January 3, 2016 8:12 PM >>> > > >> > To: Omaha Python Users Group >>> > > >> > Cc: Wes Turner >>> > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group >>> > > >> > >>> > > >> > https://wrdrd.com/docs/tools/#python >>> > > >> > * http://learnxinyminutes.com/docs/python/ # ./git >>> > > >> > >>> > > >> > "[omaha] For Python beginners" >>> > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html >>> > > >> > >>> > > >> > * http://docs.python.org/tutorial >>> > > >> > * >>> > > https://scipy-lectures.github.io/intro/language/python_language.html >>> > > >> > * https://github.com/audreyr/cookiecutter- >>> > > >> > pypackage >>> > > >> > >>> > > >> > >>> > > >> > *Create and test a package w/ git[hub] and CI" >>> > > >> > >>> > > >> > * Rosalind [Bioinformatics] exercises are outstanding >>> > > >> > 1. they're already set up for online grading/points >>> > > >> > 2. you get to learn about the domain >>> > > >> > * | Homepage: http://rosalind.info/ >>> > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind >>> > > >> > >>> > > >> > * "How to create and *test* a package for your Rosalind >>> solutions" >>> > > >> > >>> > > >> > * "Testing as a core scientific process #126" >>> > > >> > >>> https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 >>> > > >> > >>> > > >> > * TDD first! >>> > > >> > [null] hypothesis, code, test!, [commit] >>> > > >> > >>> > > >> > * >>> > > >> > >>> > > >> >>> > > >>> > >>> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution >>> > > >> > >>> > > >> > * >>> > > >> > >>> > > >>> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd >>> > > >> > * >>> > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader >>> > > >> > >>> > > >> > [omaha] November 18 Meeting - Celebrate and Plan! >>> > > >> > >>> https://mail.python.org/pipermail/omaha/2015-November/001943.html >>> > > >> > >>> > > >> > > The software carpentry lessons are great (and designed for >>> group >>> > > >> > instruction IIUC): >>> > > >> > > * https://software-carpentry.org/lessons.html >>> > > >> > >>> > > >> > ... >>> https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields >>> > : >>> > > >> > >>> > > >> > * >>> > > >> >>> > >>> https://wrdrd.com/docs/consulting/software-development#computer-science >>> > > >> > To all of who offered to help in any form with giving Python >>> > > workshops @ >>> > > >> > DoSpace, >>> > > >> > >>> > > >> > I've been hammering out some ideas for a class targeted at >>> those new >>> > > to >>> > > >> > programming in particular. >>> > > >> > >>> > > >> > We should probably start a conversation about it and see what >>> we can >>> > > put >>> > > >> > together. >>> > > >> > >>> > > >> > Here are some goals, because we need to have something to >>> measure >>> > > >> against: >>> > > >> > >>> > > >> > * should allow for students to do something with Python as soon >>> as >>> > > >> possible >>> > > >> > - don't want them bored and inattentive. >>> > > >> > >>> > > >> > * The See/Do affect of examples should have the following >>> qualities: >>> > > >> > >>> > > >> > * be pep8 compliant (only deviating when we are teaching a >>> > specific >>> > > >> > topic.) >>> > > >> > >>> > > >> > * be easy to test. No example has print or input in the >>> middle >>> > of a >>> > > >> > function other than main or one designed to deal with user >>> > > interaction. >>> > > >> > Too many examples mix I/O with processing leaving students with >>> a >>> > > knack >>> > > >> for >>> > > >> > writing hard to test code. (All example code and problems >>> should >>> > have >>> > > >> an >>> > > >> > associated test suite [py.test] to accompany them.) >>> > > >> > >>> > > >> > * Should emphasize DRY and only deviate when showing them >>> undry >>> > > >> > situations and how to correct. >>> > > >> > >>> > > >> > * Early coding problems are often quite boring, so there >>> should be >>> > > >> some >>> > > >> > sort of setup for them, a backstory, to get the students >>> invested in >>> > > >> their >>> > > >> > solution. For Example - learning comparison operators -- "Sam >>> is a >>> > > >> young >>> > > >> > AI with untrained neural nets and we need to write a module to >>> help >>> > > >> train >>> > > >> > him had to organize two things so he can put them on a shelf in >>> > > order." >>> > > >> > Sounds a lot more interesting than write a function that >>> compares 2 >>> > > >> things >>> > > >> > and output them in order from smallest to largest. *yawn* >>> > > >> > >>> > > >> > >>> > > >> > So what are your ideas? What are you willing to help out with? >>> > We'll >>> > > >> need >>> > > >> > material reviewers, testers and trainers and TAs for actual >>> classes. >>> > > >> > >>> > > >> > >>> > > >> > I believe someone has offered to be our DoSpace ambassador. >>> Sorry, >>> > > but I >>> > > >> > didn't write down your name at the meeting. Would you speak up >>> once >>> > > >> again. >>> > > >> > >>> > > >> > >>> > > >> > -- >>> > > >> > Best, >>> > > >> > >>> > > >> > Jeff Hinrichs >>> > > >> > 402.218.1473 >>> > > >> > _______________________________________________ >>> > > >> > Omaha Python Users Group mailing list >>> > > >> > Omaha at python.org >>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>> > > >> > http://www.OmahaPython.org >>> > > >> > _______________________________________________ >>> > > >> > Omaha Python Users Group mailing list >>> > > >> > Omaha at python.org >>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>> > > >> > http://www.OmahaPython.org >>> > > >> > _______________________________________________ >>> > > >> > Omaha Python Users Group mailing list >>> > > >> > Omaha at python.org >>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>> > > >> > http://www.OmahaPython.org >>> > > >> > >>> > > >> >>> > > >> >>> > > >> >>> > > >> -- >>> > > >> Best, >>> > > >> >>> > > >> Jeff Hinrichs >>> > > >> 402.218.1473 >>> > > >> _______________________________________________ >>> > > >> Omaha Python Users Group mailing list >>> > > >> Omaha at python.org >>> > > >> https://mail.python.org/mailman/listinfo/omaha >>> > > >> http://www.OmahaPython.org >>> > > >> >>> > > > >>> > > > >>> > > _______________________________________________ >>> > > Omaha Python Users Group mailing list >>> > > Omaha at python.org >>> > > https://mail.python.org/mailman/listinfo/omaha >>> > > http://www.OmahaPython.org >>> > > >>> > _______________________________________________ >>> > Omaha Python Users Group mailing list >>> > Omaha at python.org >>> > https://mail.python.org/mailman/listinfo/omaha >>> > http://www.OmahaPython.org >>> > >>> >>> >>> >>> -- >>> Best, >>> >>> Jeff Hinrichs >>> 402.218.1473 >>> _______________________________________________ >>> Omaha Python Users Group mailing list >>> Omaha at python.org >>> https://mail.python.org/mailman/listinfo/omaha >>> http://www.OmahaPython.org >>> _______________________________________________ >>> Omaha Python Users Group mailing list >>> Omaha at python.org >>> https://mail.python.org/mailman/listinfo/omaha >>> http://www.OmahaPython.org >>> >> >> > From wes.turner at gmail.com Thu Jan 7 20:59:36 2016 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 7 Jan 2016 19:59:36 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: ## Outputs ### Jupyter notebooks * grading notebooks with tests: nbgrader * presenting live code presentations: RISE ### Python packages * projects: README.rst, cookiecutter-pypackage, setup.py, pip requirements.txt [ devpi Dockerfile ] ## Tools ### jupyter ibid. ### *nbgrader* * | Wrdrdtools: https://wrdrd.com/docs/tools/#nbgrader * | Wrdrdtools: https://wrdrd.com/docs/consulting/education-technology#nbgrader ### *RISE* * | Src: https://github.com/damianavila/RISE RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal ] On Jan 7, 2016 11:05 AM, "Wes Turner" wrote: > HTML in git branches pretty much wins as far as maintainability and change > control, IMO. > > * GitHub Pages (gh-pages branch, CNAME, [...]) > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/education-technology#github-pages > * Free for Open Source Projects > * Public > * pgs > * | Src: https://github.com/westurner/pgs > * Free and Open Source > * Bottle Python Microframework Web Framework > * (This works locally with one repo > * One could layer e.g. basic auth (and/or integrate with Jupyter > Authenticators) > * https://github.com/jupyter/jupyterhub/wiki/Authenticators > * MediaWiki, GitHub, Google, Local + Google > > Publishing with a DOI should also be so easy: > > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/education-technology#publishing > * | Wrdrddocs: https://wrdrd.com/docs/tools/index#pgs > > On Thu, Jan 7, 2016 at 10:58 AM, Wes Turner wrote: > >> awesome-python-testing >> https://westurner.org/wiki/awesome-python-testing#python >> >> * https://learnxinyminutes.com/docs/python/ >> * https://www.class-central.com/search?q=python >> >> * >> https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks >> ( pip install -r requirements.txt [docker [ nbspawner ] ) >> * https://github.com/jupyter/jupyterhub/wiki/Spawners >> >> >> ... >> >> SoftwareCarpentry >> >> * http://software-carpentry.org/lessons/ >> * | Site: http://swcarpentry.github.io/python-novice-inflammation >> * | Src: https://github.com/swcarpentry/python-novice-inflammation >> >> * https://swcarpentry.github.io/slideshows/teaching-tips/index.html >> >> * #ActiveLearning >> >> >> On Thu, Jan 7, 2016 at 10:51 AM, Wes Turner wrote: >> >>> >>> >>> On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha >> > wrote: >>> >>>> I apologize for the delay. We release a new version of our software on >>>> Friday - switching to a C# harness with Python code when we need to be >>>> brilliant! >>>> >>>> >>>> I don't disagree with anything said below. I just wanted to be sure to >>>> advocate for the person who does not want to be perfect - just get >>>> something done. >>>> >>>> Here is an example of something that I think underscores the issues >>>> >>>> >>>> http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 >>>> >>>> I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a >>>> ton of knowledge to even think of the word parser. Further, I went and >>>> looked at the links and tried to read the example and I was feeling >>>> overwhelmed. So I get the best solution would be ShadowRanger's but second >>>> best works often. If you are building production code then developing an >>>> parser might be worth the investment but if you have this messy file you >>>> need now and you are a scientist then second best is probably your path. >>>> >>> >>> *Scipy-lectures, Python Documentation, awesome-python-testing* >>> >>> Rosalind.info has a number of introductory Python exercises and >>> algorithms. The glossary is really helpful. >>> >>> * | Glossary: http://rosalind.info/glossary/ >>> * | Docs: Rosalind Python Village problem list view: >>> http://rosalind.info/problems/list-view/?location=python-village >>> >>> * http://rosalind.info/problems/ini3/ # solved by 11511 >>> * Click to Expand >>> * http://rosalind.info/problems/ini6/ # "Dictionaries" solved by 5565 >>> >>> >>> * http://www.scipy-lectures.org/intro/language/python_language.html >>> * https://docs.python.org/2/tutorial/datastructures.html#sets >>> * >>> http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries >>> * https://docs.python.org/2/tutorial/datastructures.html#dictionaries >>> * >>> >>> >>> *Set Theory* >>> * | Wikipedia: https://en.wikipedia.org/wiki/Set_theory >>> * | Wrdrdocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory >>> ** | *RosalindProblem: Introduction to Set Operations: >>> http://rosalind.info/problems/seto/ >>> >>> *Graphs* >>> * | Wikipedia: >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#graphs >>> >>> >>> *Topological Sorting* >>> * | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting >>> * Rosalind.info > Glossary > "Algo: Topological Sorting" >>> http://rosalind.info/glossary/algo-topological-sorting/ >>> >>> >>> >>>> We will talk more about this at the meeting. I will observe now and >>>> talk about this in the meeting that ppt slides are not so good for kids - >>>> okay for adults but not for kids. I make my kids write down anything that >>>> I think I want on a slide. >>>> >>> >>> >>> *Jupyter and Learning* >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning >>> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter >>> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive >>> storage >>> >>> >>> *nbgrader* >>> * | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader >>> * | Wrdrdtools: >>> https://wrdrd.com/docs/consulting/education-technology#nbgrader >>> >>> *RISE* >>> * | Src: https://github.com/damianavila/RISE >>> >>> RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal >>> ] >>> >>> Reveal.js >>> * | Homepage: http://lab.hakim.se/reveal-js/#/ >>> * | Source: https://github.com/hakimel/reveal.js/ >>> >>> >>>> Please understand, I am not being critical I just want to make these >>>> observations because I am a cranky middle aged man. >>>> >>> >>> Are you preparing students for a problem-solving business-like >>> scientific context and/or for creative problem solving? >>> >>> * Linked Curricula Graphs >>> #RDFa #JSONLD >>> https://westurner.org/opengov/us/ne/index#linked-curricula-graphs >>> >>> >>> * *schema.org/Course * >>> #RDFa #JSONLD >>> https://westurner.org/opengov/us/ne/index#schema-org-course >>> >>> >>> >>> >>> .. index:: Graphs >>> .. _graphs: >>> >>> Graphs >>> ```````` >>> | Wikipedia: ``__ >>> | Wikipedia: ``__ >>> | Wikipedia: ``__ >>> | Docs: https://en.wikipedia.org/wiki/Conceptual_graph >>> | WikipediaCategory: ``__ >>> | WikipediaCategory: ``__ >>> | WikipediaCategory: ``__ >>> >>> A graph is a :term:`system` of nodes connected by edges; >>> an abstract data type for which there are a number of >>> suitable data structures. >>> >>> * A node has edges. >>> * An edge connects nodes. >>> >>> * Edges of **directed graphs** flow in only one direction; >>> and so require two edges with separate attributes >>> (e.g. 'magnitude', 'scale' >>> >>> | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph >>> >>> * Edges of an **undirected graph** connect nodes >>> in both directions (with the same attributes). >>> >>> | Wikipedia: ``__ >>> >>> * Graphs and :ref:`trees` are **traversed** (or *walked*); >>> according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`). >>> >>> * Graph nodes can be listed in many different *orders* >>> (or with a given *ordering*): >>> >>> * Preoder >>> * Inorder >>> * Postorder >>> * Level-order >>> >>> * There are many :ref:`data structure ` >>> representatations for :ref:`graphs`. >>> >>> * There are many data serialization/marshalling >>> formats for graphs: >>> >>> * Graph edge lists can be stored as adjacency :ref:`matrices `. >>> * :ref:`NetworkX` supports a number of graph storage formats. >>> * :ref:`RDF` is a :ref:`standard semantic web ` >>> :ref:`linked data` format for :ref:`graphs`. >>> * :ref:`JSON-LD` is a :ref:`standard semantic web ` >>> :ref:`linked data` format for :ref:`graphs`. >>> >>> * There are many :ref:`Graph Databases` and :ref:`triplestores` >>> for storing graphs. >>> >>> * A cartesian product has an interesting graph representation. >>> (See :ref:`compression algorithms`) >>> >>> >>> .. index:: NetworkX >>> .. _networkx: >>> >>> NetworkX >>> ~~~~~~~~~~~ >>> | Wikipedia: https://en.wikipedia.org/wiki/NetworkX >>> | Homepage: https://networkx.github.io/ >>> | Source: git https://github.com/networkx/networkx >>> | Docs: https://networkx.github.io/documentation.html >>> | Docs: https://networkx.github.io/documentation/latest/ >>> | Docs: https://networkx.github.io/documentation/latest/tutorial/ >>> | Docs: https://networkx.github.io/documentation/latest/reference/classes.html >>> | Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html >>> >>> NetworkX is an :ref:`open source` graph algorithms library >>> written in :ref:`Python`. >>> >>> >>>> >>>> ________________________________________ >>>> From: Omaha on >>>> behalf of Jeff Hinrichs - DM&T via Omaha >>>> Sent: Tuesday, January 5, 2016 12:42 AM >>>> To: Omaha Python Users Group >>>> Cc: Jeff Hinrichs - DM&T >>>> Subject: Re: [omaha] Python Workshops @ DoSpace Group >>>> >>>> @Steve, given the enthusiasm for youth programming at the last meeting, >>>> the >>>> first course I thought we'd work on, py100, for beginning / new >>>> programmers >>>> who are interested in learning Python with a class time of 2 hours (1.5 >>>> actual) with a goal of a lab/student exercise every 12 minutes. I >>>> figure >>>> on average 8 minutes per lab giving 4 minutes of lecture and slides per >>>> lab. All of which is complete speculation at this point but I believe >>>> the >>>> twice as much lab as talk is a valid starting point. *wink* It is a >>>> very >>>> fundamental programming with Python where one of our goals should be to >>>> do >>>> no harm if an attendee wants to go farther. >>>> >>>> @adam, There is absolutely no reason why we couldn't create classes for >>>> other categories of students. My working idea is PySchool, some courses >>>> (if we get there) can have pre-requisites others ,like py100, will have >>>> no >>>> pre-reqs. >>>> >>>> >>>> >>>> On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha >>> > >>>> wrote: >>>> >>>> > Adam brought up a good point to consider. Are you aiming for people >>>> with >>>> > little to no programming experience (which is what I was thinking) or >>>> > experienced programmers wanting to learn python? >>>> > >>>> > Steve >>>> > >>>> > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha < >>>> omaha at python.org> >>>> > wrote: >>>> > >>>> > > *I should clarify this terrible sentence:* >>>> > > "For example, if you have defined methods/functions and tell them to >>>> > create >>>> > > their own, I think it's far more likely that they'll copy the way >>>> you've >>>> > > created a method/function, then to fill our it's inner workings. " >>>> > > >>>> > > *What I meant to say was:* >>>> > > "For example, if you have defined methods/functions and tell them to >>>> > create >>>> > > their own, I think it's far more likely that students would enjoy >>>> copying >>>> > > the way these are already created in the file then filling our the >>>> inner >>>> > > workings of one created for them." >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: >>>> > > >>>> > > > When I go to a workshop like this, I tend to have more >>>> fun/interest if >>>> > > I'm >>>> > > > challenged. While I appreciate the fact that you'd like to >>>> introduce >>>> > > > excellent coding practices by having a majority of the file >>>> coded, I >>>> > > > encourage you to leave a good chunk to the user. For example, if >>>> you >>>> > > have >>>> > > > defined methods/functions and tell them to create their own, I >>>> think >>>> > it's >>>> > > > far more likely that they'll copy the way you've created a >>>> > > method/function, >>>> > > > then to fill our it's inner workings. Perhaps, that's already >>>> what you >>>> > > > were thinking, but I just wanted to clarify. >>>> > > > >>>> > > > Learning Python was extremely applicable when I was solving >>>> ACM-like >>>> > > > algorithm challenges - I like the idea of converting programmers >>>> into >>>> > > > python devs - maybe even in other fields. I think that a >>>> > > challenge/problem >>>> > > > like that where a programmer can clearly see python's advantages >>>> over >>>> > > other >>>> > > > languages would be a valuable asset to the class. >>>> > > > >>>> > > > With all this said, I'm still a relative beginner - maybe even >>>> your >>>> > > target >>>> > > > demo - so take what I say with a grain of salt. >>>> > > > >>>> > > > Adam Schaal >>>> > > > >>>> > > > >>>> > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < >>>> > > > omaha at python.org> wrote: >>>> > > > >>>> > > >> Burch, >>>> > > >> I think you are hitting the nail on the head. And it is good >>>> that you >>>> > > are >>>> > > >> pointing out that the goal might appear to be too geared to a >>>> > > programming >>>> > > >> as a profession. I am glad that you said something, because I am >>>> > > looking >>>> > > >> to approach this the other way round. That is to inspire >>>> programming >>>> > in >>>> > > >> other professions. With the current push on in the sciences for >>>> > > >> repeatable results in data analysis, I would think that within >>>> the >>>> > next >>>> > > >> decade that anyone who works with data for a profession (not >>>> > > programmer's >>>> > > >> but analysts, scientists, etc.) would be ill equipped if they >>>> can't >>>> > > >> wrangle >>>> > > >> data. >>>> > > >> >>>> > > >> To that end, many just like you and myself (when I attended >>>> college, >>>> > you >>>> > > >> only received 1 credit hour for a language class. They were >>>> > graduating >>>> > > >> Computer Scientists not programmers.) pick up a language or other >>>> > tool, >>>> > > >> based on our ability and the reference material that we have at >>>> hand >>>> > (or >>>> > > >> online). And that first exposure sits like concrete, as you >>>> stated. >>>> > The >>>> > > >> example you sited about file handling is very insightful and I >>>> think >>>> > > lends >>>> > > >> credence to my goal of making the first contact for those new to >>>> > > >> programming as positive as we can. >>>> > > >> >>>> > > >> My goal is to have the examples that we show to the class be as >>>> good >>>> > as >>>> > > we >>>> > > >> can make them. Be written in a way that lends itself to good >>>> > convention >>>> > > >> and best current practices. So that when we show students >>>> example >>>> > code >>>> > > -- >>>> > > >> it is of good quality, not a questionable example that was thrown >>>> > > together >>>> > > >> to demonstrate one thing while completely ignoring all other good >>>> > > >> practices. I believe the examples we pick for use in these still >>>> > > >> fictional >>>> > > >> classes should show not only what we want to demonstrate on the >>>> micro >>>> > > >> level >>>> > > >> but also be a good example on the macro level. So that if a >>>> > > >> student/attendee used one of our examples as a starting point for >>>> > > >> something >>>> > > >> bigger, they would be on good footing. When people first start >>>> > > >> programming we don't write code as much as borrow it from other >>>> > places. >>>> > > >> *wink* My goal is to create the best quality code examples, >>>> that >>>> > they >>>> > > >> can >>>> > > >> borrow for other things. >>>> > > >> >>>> > > >> Also, for beginners a blank file is too much. The examples I've >>>> come >>>> > up >>>> > > >> with so far require that they fill in the missing pieces, >>>> concatenate >>>> > > some >>>> > > >> strings here, finish out the function body there, but the rest >>>> of the >>>> > > code >>>> > > >> should be stellar because we wrote it for them. Doc strings >>>> where >>>> > they >>>> > > >> belong, conventions followed for naming variables (no more i, j, >>>> k >>>> > which >>>> > > >> dominate in Fortran or x and y like it is a math problem)with >>>> > > descriptive >>>> > > >> names. So that when the time comes for a student to create a >>>> variable >>>> > > out >>>> > > >> of thin air they will be more likely to be descriptive too. But >>>> even >>>> > if >>>> > > >> they don't use descriptive names students won't be berated, what >>>> > matters >>>> > > >> is >>>> > > >> that code does what is intended. >>>> > > >> >>>> > > >> As for testing, I am not going to try and sell you on it. (Like >>>> > backup >>>> > > >> and >>>> > > >> restore, most are not concerned until the ugly happens.) I am >>>> not even >>>> > > >> planning on talking about it in these opening workshops. >>>> However, >>>> > that >>>> > > >> doesn't mean I am going to favor code examples that are not >>>> testable. >>>> > > Far >>>> > > >> from it. Everyone of my current example exercises has associated >>>> > tests. >>>> > > >> The students won't run the tests but my agent, sam will. When >>>> they >>>> > > finish >>>> > > >> an exercise I'll know, as sam will let me know their code is >>>> running >>>> > and >>>> > > >> passing the tests. That also requires that the creator of the >>>> > specific >>>> > > >> lab >>>> > > >> write in a way that is testable. However, none of this is a >>>> burden to >>>> > > the >>>> > > >> student as they are not going to be running the tests or even >>>> thinking >>>> > > >> about creating testable code but they'll be learning it >>>> subliminally. >>>> > > >> >>>> > > >> And now that I've used the word, subliminal -- I just realized >>>> that >>>> > was >>>> > > my >>>> > > >> goal all the time. In each example, given on a slide or as an >>>> > exercise >>>> > > >> there is the part that you are talking about discretely. >>>> Focusing on >>>> > > that >>>> > > >> topic. However, the surrounding and supporting code is also >>>> teaching >>>> > > and >>>> > > >> informing the student. That is the part that needs more love in >>>> just >>>> > > >> about >>>> > > >> every example I've seen on the internet. >>>> > > >> >>>> > > >> If none of this made sense or you still don't agree (However, I >>>> think >>>> > > that >>>> > > >> I'm tripping over myself agreeing with you.) please say so. The >>>> point >>>> > > of >>>> > > >> this thread is to have a conversation where we can flesh out some >>>> > > >> reasonable goals and then see if we can meet them. So if you are >>>> > > reading >>>> > > >> this and have an opinion, a point, a question then please, please >>>> > chime >>>> > > >> in. >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < >>>> > > omaha at python.org> >>>> > > >> wrote: >>>> > > >> >>>> > > >> > >>>> > > >> > I will make an observation - this is not meant to be critical >>>> but I >>>> > > want >>>> > > >> > you (collectively) to chew on it. If I want to learn to be a >>>> > > >> programmer I >>>> > > >> > would look for a well structured learning path. If I want to >>>> learn >>>> > to >>>> > > >> do >>>> > > >> > things to make my life easier I am not sure I want to take the >>>> same >>>> > > >> path as >>>> > > >> > if I wanted to learn to be a programmer. >>>> > > >> > >>>> > > >> > This note is sent in response to both Jeff's and Wes's posting. >>>> > > Please >>>> > > >> I >>>> > > >> > am not trying to be critical but you guys are programmers by >>>> > training >>>> > > >> and >>>> > > >> > vocation I am not. I don't have the time to learn to be a >>>> > programmer. >>>> > > >> > Unit Tests, what the heck are those? Why do I care? >>>> > > >> > >>>> > > >> > I ask a question on SO and a bunch of idiots jump up and are >>>> > critical >>>> > > >> for >>>> > > >> > the fact that my code is not PEP 8 compliant - okay it makes >>>> them >>>> > feel >>>> > > >> good >>>> > > >> > but it does not help me. For example, for the longest time ( >>>> say 5 >>>> > > >> years) >>>> > > >> > when I opened and read a file I would do this >>>> > > >> > >>>> > > >> > mydata = open('some file path','r').readlines() >>>> > > >> > >>>> > > >> > That is not PEP 8 compliant (I don't think), but when I first >>>> > Googled >>>> > > to >>>> > > >> > learn how to open a file and read the contents into a list - I >>>> think >>>> > > >> this >>>> > > >> > is the webpage I found >>>> > > >> > >>>> > > >> > >>>> http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php >>>> > > >> > >>>> > > >> > It was only this year that I took the time to learn the right >>>> way >>>> > > >> > >>>> > > >> > with open('some file path','r') as f_handle: >>>> > > >> > data = f_handle.readlines() >>>> > > >> > >>>> > > >> > Why did I not bother learning the right way before this year, >>>> I was >>>> > > too >>>> > > >> > busy learning how to do other things and it was working for >>>> me. Why >>>> > > >> did I >>>> > > >> > even bother learning the right way, because I got sick of the >>>> way >>>> > the >>>> > > >> > conversation would get channeled if I had a question or comment >>>> > about >>>> > > >> > something and the pros would say well you are not opening the >>>> file >>>> > > >> right. >>>> > > >> > My response is who gives a drat, that is not the problem, but >>>> they >>>> > are >>>> > > >> > stuck on that issue. >>>> > > >> > >>>> > > >> > I am probably not explaining this well - certainly you want to >>>> teach >>>> > > >> > people the right way but I would be careful about how far you >>>> take >>>> > it. >>>> > > >> Our >>>> > > >> > software is used by over 5,000 people and I have never written >>>> a >>>> > unit >>>> > > >> test >>>> > > >> > (have no clue). I know that is not a big number but it is the >>>> > amazing >>>> > > >> > thing about Python. >>>> > > >> > >>>> > > >> > Don't cringe, drink some OJ! >>>> > > >> > >>>> > > >> > Just an observation. >>>> > > >> > >>>> > > >> > Happy New Year >>>> > > >> > >>>> > > >> > Burch >>>> > > >> > ________________________________________ >>>> > > >> > From: Omaha >>>> on >>>> > > >> behalf >>>> > > >> > of Wes Turner via Omaha >>>> > > >> > Sent: Sunday, January 3, 2016 8:12 PM >>>> > > >> > To: Omaha Python Users Group >>>> > > >> > Cc: Wes Turner >>>> > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group >>>> > > >> > >>>> > > >> > https://wrdrd.com/docs/tools/#python >>>> > > >> > * http://learnxinyminutes.com/docs/python/ # ./git >>>> > > >> > >>>> > > >> > "[omaha] For Python beginners" >>>> > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html >>>> > > >> > >>>> > > >> > * http://docs.python.org/tutorial >>>> > > >> > * >>>> > > >>>> https://scipy-lectures.github.io/intro/language/python_language.html >>>> > > >> > * https://github.com/audreyr/cookiecutter- >>>> > > >> > pypackage >>>> > > >> > >>>> > > >> > >>>> > > >> > *Create and test a package w/ git[hub] and CI" >>>> > > >> > >>>> > > >> > * Rosalind [Bioinformatics] exercises are outstanding >>>> > > >> > 1. they're already set up for online grading/points >>>> > > >> > 2. you get to learn about the domain >>>> > > >> > * | Homepage: http://rosalind.info/ >>>> > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind >>>> > > >> > >>>> > > >> > * "How to create and *test* a package for your Rosalind >>>> solutions" >>>> > > >> > >>>> > > >> > * "Testing as a core scientific process #126" >>>> > > >> > >>>> https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 >>>> > > >> > >>>> > > >> > * TDD first! >>>> > > >> > [null] hypothesis, code, test!, [commit] >>>> > > >> > >>>> > > >> > * >>>> > > >> > >>>> > > >> >>>> > > >>>> > >>>> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution >>>> > > >> > >>>> > > >> > * >>>> > > >> > >>>> > > >>>> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd >>>> > > >> > * >>>> > > >> > >>>> https://wrdrd.com/docs/consulting/education-technology#nbgrader >>>> > > >> > >>>> > > >> > [omaha] November 18 Meeting - Celebrate and Plan! >>>> > > >> > >>>> https://mail.python.org/pipermail/omaha/2015-November/001943.html >>>> > > >> > >>>> > > >> > > The software carpentry lessons are great (and designed for >>>> group >>>> > > >> > instruction IIUC): >>>> > > >> > > * https://software-carpentry.org/lessons.html >>>> > > >> > >>>> > > >> > ... >>>> https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields >>>> > : >>>> > > >> > >>>> > > >> > * >>>> > > >> >>>> > >>>> https://wrdrd.com/docs/consulting/software-development#computer-science >>>> > > >> > To all of who offered to help in any form with giving Python >>>> > > workshops @ >>>> > > >> > DoSpace, >>>> > > >> > >>>> > > >> > I've been hammering out some ideas for a class targeted at >>>> those new >>>> > > to >>>> > > >> > programming in particular. >>>> > > >> > >>>> > > >> > We should probably start a conversation about it and see what >>>> we can >>>> > > put >>>> > > >> > together. >>>> > > >> > >>>> > > >> > Here are some goals, because we need to have something to >>>> measure >>>> > > >> against: >>>> > > >> > >>>> > > >> > * should allow for students to do something with Python as >>>> soon as >>>> > > >> possible >>>> > > >> > - don't want them bored and inattentive. >>>> > > >> > >>>> > > >> > * The See/Do affect of examples should have the following >>>> qualities: >>>> > > >> > >>>> > > >> > * be pep8 compliant (only deviating when we are teaching a >>>> > specific >>>> > > >> > topic.) >>>> > > >> > >>>> > > >> > * be easy to test. No example has print or input in the >>>> middle >>>> > of a >>>> > > >> > function other than main or one designed to deal with user >>>> > > interaction. >>>> > > >> > Too many examples mix I/O with processing leaving students >>>> with a >>>> > > knack >>>> > > >> for >>>> > > >> > writing hard to test code. (All example code and problems >>>> should >>>> > have >>>> > > >> an >>>> > > >> > associated test suite [py.test] to accompany them.) >>>> > > >> > >>>> > > >> > * Should emphasize DRY and only deviate when showing them >>>> undry >>>> > > >> > situations and how to correct. >>>> > > >> > >>>> > > >> > * Early coding problems are often quite boring, so there >>>> should be >>>> > > >> some >>>> > > >> > sort of setup for them, a backstory, to get the students >>>> invested in >>>> > > >> their >>>> > > >> > solution. For Example - learning comparison operators -- "Sam >>>> is a >>>> > > >> young >>>> > > >> > AI with untrained neural nets and we need to write a module to >>>> help >>>> > > >> train >>>> > > >> > him had to organize two things so he can put them on a shelf in >>>> > > order." >>>> > > >> > Sounds a lot more interesting than write a function that >>>> compares 2 >>>> > > >> things >>>> > > >> > and output them in order from smallest to largest. *yawn* >>>> > > >> > >>>> > > >> > >>>> > > >> > So what are your ideas? What are you willing to help out with? >>>> > We'll >>>> > > >> need >>>> > > >> > material reviewers, testers and trainers and TAs for actual >>>> classes. >>>> > > >> > >>>> > > >> > >>>> > > >> > I believe someone has offered to be our DoSpace ambassador. >>>> Sorry, >>>> > > but I >>>> > > >> > didn't write down your name at the meeting. Would you speak >>>> up once >>>> > > >> again. >>>> > > >> > >>>> > > >> > >>>> > > >> > -- >>>> > > >> > Best, >>>> > > >> > >>>> > > >> > Jeff Hinrichs >>>> > > >> > 402.218.1473 >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> -- >>>> > > >> Best, >>>> > > >> >>>> > > >> Jeff Hinrichs >>>> > > >> 402.218.1473 >>>> > > >> _______________________________________________ >>>> > > >> Omaha Python Users Group mailing list >>>> > > >> Omaha at python.org >>>> > > >> https://mail.python.org/mailman/listinfo/omaha >>>> > > >> http://www.OmahaPython.org >>>> > > >> >>>> > > > >>>> > > > >>>> > > _______________________________________________ >>>> > > Omaha Python Users Group mailing list >>>> > > Omaha at python.org >>>> > > https://mail.python.org/mailman/listinfo/omaha >>>> > > http://www.OmahaPython.org >>>> > > >>>> > _______________________________________________ >>>> > Omaha Python Users Group mailing list >>>> > Omaha at python.org >>>> > https://mail.python.org/mailman/listinfo/omaha >>>> > http://www.OmahaPython.org >>>> > >>>> >>>> >>>> >>>> -- >>>> Best, >>>> >>>> Jeff Hinrichs >>>> 402.218.1473 >>>> _______________________________________________ >>>> Omaha Python Users Group mailing list >>>> Omaha at python.org >>>> https://mail.python.org/mailman/listinfo/omaha >>>> http://www.OmahaPython.org >>>> _______________________________________________ >>>> Omaha Python Users Group mailing list >>>> Omaha at python.org >>>> https://mail.python.org/mailman/listinfo/omaha >>>> http://www.OmahaPython.org >>>> >>> >>> >> > From wes.turner at gmail.com Thu Jan 7 22:51:06 2016 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 7 Jan 2016 21:51:06 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: ## project files * Generate a project with cookiecutter and a cookiecutter (e.g. cookiecutter-pypackage) * DOC: README.rst: * BLD: notebooks/: mkdir notebooks/ || git clone TODO/cookiecutter-jupyter-notebooks-project .. code:: ipython ls %ls !ls Makefile # make, Gruntfile.js, Gulpfile.js # BUILD # pants build # Dockerfile README.rst setup.py pkgname/__init__.py pkgname/pkgname.py docs/Makefile docs/conf.py docs/index.rst docs/readme.rst <- ../README.rst # headings docs/notebooks -> ../notebooks # symlink: ln -s docs/notebooks notebooks/index.py.ipynb .. code:: bash # python setup.py develop pip install -e . # ./setup.py pip install -r requirements.txt .. code:: bash make help python setup.py --help #setuptools ### Build notebooks, build sphinx docs, open With notebooks in ``${_WRD}/notebooks`` (and setup.py in ``${_WRD}/setup.py``): .. code:: bash ## Build notebooks .html make -C notebooks/ html-all # jupyter-convert ./index.py.ipynb --to html # [.html] # test: runipy ./*.py.ipynb # westurner/notebooks/Makefile [1] ## Build notebooks .py ls ./notebooks/*.py.ipynb ./notebooks/*.html ./notebooks/*.py.py ## Link ./notebooks/README.rst with ./docs/index.rst #TODO make -C . copy_or_symlink_notebooks_to_docs # Build sphinx HTML and open index.html in a browser make -C docs/ html # singlehtml epub mobi ls ./docs/_build/html pip install web.sh # web|x-www-browser|open|python -m webbrowser web ./_docs/_build/html/index.html # Show jupyter notebook commandline (CLI) options jupyter-notebook --help # Start jupyter-notebook in the current directory jupyter-notebook * [1] https://github.com/westurner/notebooks/blob/gh-pages/Makefile ## Install conda Install miniconda and conda (or all of Anaconda), and then install Jupyter notebook ("notebook", anaconda:notebook) with conda: * | Docs: http://conda.pydata.org/docs/install/quick.html * | Docs: http://conda.pydata.org/docs/test-drive.html#conda-test-drive-milestones * | Wrdrdtools: https://wrdrd.com/docs/tools/#conda .. code:: bash # # - http://conda.pydata.org/docs/install/quick.html # - seeAlso westurner/dotfiles/scripts/setup_miniconda.sh [1] # - seeAlso: westurner/dotfiles/etc/bash/08-bashrc.conda.sh [2] # - mkvirtualenv_conda , workon_conda (wec) # # PATH=/bin":${PATH}" # create a new condaenv named 'science' conda create -n science python=2 # python=3 source activate science # install jupyter notebook and a condaenv-local copy of pip, and cookiecutter conda install -y notebook pip ; pip install cookiecutter jupyter-notebook --help jupyter-notebook * [-] https://github.com/westurner/dotfiles/blob/master/etc/bash/08-bashrc.conda.sh * [1] https://github.com/westurner/dotfiles/blob/develop/etc/bash/08-bashrc.conda.sh * [2] https://github.com/westurner/dotfiles/blob/develop/scripts/setup_miniconda.sh * [ ] TODO: BUG reports to https://github.com/westurner/dotfiles/issues * -> http://conda.pydata.org/docs/ ### Anaconda distribution * | Docs: Anaconda package list: http://docs.continuum.io/anaconda/pkg-docs .. code:: ipython !conda install -y anaconda # install the Anaconda distribution !conda update -y anaconda # update the Anaconda distribution to distribution latest ## Tools * | Wrdrdtools: https://wrdrd.com/docs/tools/#git * | Wrdrdtools: https://wrdrd.com/docs/tools/#make * | Wrdrdtools: https://wrdrd.com/docs/tools/#grunt * | Wrdrdtools: https://wrdrd.com/docs/tools/#gulp * | Wrdrdtools: https://wrdrd.com/docs/tools/#pants-build * | Wrdrdtools: https://wrdrd.com/docs/tools/#docker * | Wrdrdtools: https://wrdrd.com/docs/tools/#markdown * | Wrdrdtools: https://wrdrd.com/docs/tools/#restructuredtext * | Wrdrdtools: https://wrdrd.com/docs/tools/#setuptools * | Wrdrdtools: https://wrdrd.com/docs/tools/#pip * | Wrdrdtools: https://wrdrd.com/docs/tools/#conda * | Wrdrdtools: https://wrdrd.com/docs/tools/#anaconda * | Wrdrdtools: https://wrdrd.com/docs/tools/#sphinx * | Wrdrdtools: https://wrdrd.com/docs/tools/#git * https://learnxinyminutes.com/docs/git/ * ... An idea: 1. Create a git repository for each user account username/.git 2. Create git submodules for each project username/school--python-101--projectname/.git Advantages: * UserRepo = [ ProjectRepo_X, ProjectRepo_Y, ProjectRepo_Z ] * ``cd ./username; git status`` shows each added git submodule [e.g. [modified]] * ``git clone --recursive ssh://git at github.com/username/username`` pulls everything Disadvantages: * ``git clone --recursive ssh://git at github.com/username/username`` pulls everything * git submodules are great but the "porcelain" (the shell/perl/python scripts on top of git proper) is not yet that great * https://westurner.org/wiki/projects#pyrpo "A shell command wrapper for hg, git, bzr, svn" * | Src: https://github.com/westurner/pyrpo * [...] I should port the git commands for westurner/pgs to pyrpo, and then port the pgs gh-pages git branch serving over HTTP functionality to e.g. tornado, where I could tie-in with the already-tested and maintained Jupyter Authenticators (e.g. MediaWiki, GitHub, Google, Local + Google) * This would make it easier to host folders of projects with gh-pages branches locally, with authentication, over HTTPS. * pgs -P 18881 -g . -r gh-pages # HTTP://localhost:18881/ * pgs -P 18882 -p . # HTTP://localhost:18882/ * Lab/school/district-level SSO (single-sign on) would tie-in . Or, you can just run a local instance as the current user account [ within a Docker container, using a Jupyter [Docker] spawner that supports authentication, and central storage for $HOME-dirs ( or google-drive and sync )) * : where to store the repositories? * westurner/dotfiles/scripts/venv.py $__WRK, $WORKON_HOME, $VIRTUAL_ENV, $_SRC ## Alternatives * store things in e.g. ``$HOME/Documents`` * and copy a ZIP to e.g. a USB key regularly * and rsync to a redundant location regularly * store things in ``${_WRD}/notebooks`` with FSH standard paths * ``${WORKON_HOME}/science/src//notebooks`` * ``${CONDA_ENVS_PATH}/science/src//notebooks`` * ``wec science; cd ${_WRD}/notebooks; pwd`` * ``cd ~/-wrk/-ve27/science/src/science/notebooks; pwd`` * | https://westurner.org/tools/#filesystem-hierarchy-standard * | https://westurner.org/dotfiles/venv#venv-paths * store things in ``${_WRD}/notebooks`` with git * ``git init; # git hf init # hubflow`` * ``git add; git commit; git log`` * ``git push; git pull`` * ``git clone`` * store things in e.g. Google Drive (GDrive) with jupyter-drive * Jupyter Notebook Web UI > Open/Save <---> GDrive * store things in e.g. {Google Drive (GDrive), Dropbox} with a desktop cloud storage app * Open/Save <---> [synchronizing] <--->GDrive ## Opportunities identified * REF: pgs -> pyrpo * REF,ENH: pgs-tornado: port pgs to tornado * ENH,SEC: pgs-tornado: * ENH: jupyter-notebook: git-save buttons Git Save buttons in jupyter-notebook would be great. * | Src: https://github.com/jupyter/notebook * | Src: https://github.com/jupyter/notebook/issues * DOC: grab chunks of text from these schema.org/EmailMessage s and port back to sphinx docs On Thu, Jan 7, 2016 at 11:05 AM, Wes Turner wrote: > HTML in git branches pretty much wins as far as maintainability and change > control, IMO. > > * GitHub Pages (gh-pages branch, CNAME, [...]) > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/education-technology#github-pages > * Free for Open Source Projects > * Public > * pgs > * | Src: https://github.com/westurner/pgs > * Free and Open Source > * Bottle Python Microframework Web Framework > * (This works locally with one repo > * One could layer e.g. basic auth (and/or integrate with Jupyter > Authenticators) > * https://github.com/jupyter/jupyterhub/wiki/Authenticators > * MediaWiki, GitHub, Google, Local + Google > > Publishing with a DOI should also be so easy: > > * | Wrdrddocs: > https://wrdrd.com/docs/consulting/education-technology#publishing > * | Wrdrddocs: https://wrdrd.com/docs/tools/index#pgs > > On Thu, Jan 7, 2016 at 10:58 AM, Wes Turner wrote: > >> awesome-python-testing >> https://westurner.org/wiki/awesome-python-testing#python >> >> * https://learnxinyminutes.com/docs/python/ >> * https://www.class-central.com/search?q=python >> >> * >> https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks >> ( pip install -r requirements.txt [docker [ nbspawner ] ) >> * https://github.com/jupyter/jupyterhub/wiki/Spawners >> >> >> ... >> >> SoftwareCarpentry >> >> * http://software-carpentry.org/lessons/ >> * | Site: http://swcarpentry.github.io/python-novice-inflammation >> * | Src: https://github.com/swcarpentry/python-novice-inflammation >> >> * https://swcarpentry.github.io/slideshows/teaching-tips/index.html >> >> * #ActiveLearning >> >> >> On Thu, Jan 7, 2016 at 10:51 AM, Wes Turner wrote: >> >>> >>> >>> On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha >> > wrote: >>> >>>> I apologize for the delay. We release a new version of our software on >>>> Friday - switching to a C# harness with Python code when we need to be >>>> brilliant! >>>> >>>> >>>> I don't disagree with anything said below. I just wanted to be sure to >>>> advocate for the person who does not want to be perfect - just get >>>> something done. >>>> >>>> Here is an example of something that I think underscores the issues >>>> >>>> >>>> http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502 >>>> >>>> I am Pynewbie. So ShadowRanger is ignoring the fact that it takes a >>>> ton of knowledge to even think of the word parser. Further, I went and >>>> looked at the links and tried to read the example and I was feeling >>>> overwhelmed. So I get the best solution would be ShadowRanger's but second >>>> best works often. If you are building production code then developing an >>>> parser might be worth the investment but if you have this messy file you >>>> need now and you are a scientist then second best is probably your path. >>>> >>> >>> *Scipy-lectures, Python Documentation, awesome-python-testing* >>> >>> Rosalind.info has a number of introductory Python exercises and >>> algorithms. The glossary is really helpful. >>> >>> * | Glossary: http://rosalind.info/glossary/ >>> * | Docs: Rosalind Python Village problem list view: >>> http://rosalind.info/problems/list-view/?location=python-village >>> >>> * http://rosalind.info/problems/ini3/ # solved by 11511 >>> * Click to Expand >>> * http://rosalind.info/problems/ini6/ # "Dictionaries" solved by 5565 >>> >>> >>> * http://www.scipy-lectures.org/intro/language/python_language.html >>> * https://docs.python.org/2/tutorial/datastructures.html#sets >>> * >>> http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries >>> * https://docs.python.org/2/tutorial/datastructures.html#dictionaries >>> * >>> >>> >>> *Set Theory* >>> * | Wikipedia: https://en.wikipedia.org/wiki/Set_theory >>> * | Wrdrdocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory >>> ** | *RosalindProblem: Introduction to Set Operations: >>> http://rosalind.info/problems/seto/ >>> >>> *Graphs* >>> * | Wikipedia: >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#graphs >>> >>> >>> *Topological Sorting* >>> * | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting >>> * Rosalind.info > Glossary > "Algo: Topological Sorting" >>> http://rosalind.info/glossary/algo-topological-sorting/ >>> >>> >>> >>>> We will talk more about this at the meeting. I will observe now and >>>> talk about this in the meeting that ppt slides are not so good for kids - >>>> okay for adults but not for kids. I make my kids write down anything that >>>> I think I want on a slide. >>>> >>> >>> >>> *Jupyter and Learning* >>> * | Wrdrddocs: >>> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning >>> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter >>> * | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive >>> storage >>> >>> >>> *nbgrader* >>> * | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader >>> * | Wrdrdtools: >>> https://wrdrd.com/docs/consulting/education-technology#nbgrader >>> >>> *RISE* >>> * | Src: https://github.com/damianavila/RISE >>> >>> RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal >>> ] >>> >>> Reveal.js >>> * | Homepage: http://lab.hakim.se/reveal-js/#/ >>> * | Source: https://github.com/hakimel/reveal.js/ >>> >>> >>>> Please understand, I am not being critical I just want to make these >>>> observations because I am a cranky middle aged man. >>>> >>> >>> Are you preparing students for a problem-solving business-like >>> scientific context and/or for creative problem solving? >>> >>> * Linked Curricula Graphs >>> #RDFa #JSONLD >>> https://westurner.org/opengov/us/ne/index#linked-curricula-graphs >>> >>> >>> * *schema.org/Course * >>> #RDFa #JSONLD >>> https://westurner.org/opengov/us/ne/index#schema-org-course >>> >>> >>> >>> >>> .. index:: Graphs >>> .. _graphs: >>> >>> Graphs >>> ```````` >>> | Wikipedia: ``__ >>> | Wikipedia: ``__ >>> | Wikipedia: ``__ >>> | Docs: https://en.wikipedia.org/wiki/Conceptual_graph >>> | WikipediaCategory: ``__ >>> | WikipediaCategory: ``__ >>> | WikipediaCategory: ``__ >>> >>> A graph is a :term:`system` of nodes connected by edges; >>> an abstract data type for which there are a number of >>> suitable data structures. >>> >>> * A node has edges. >>> * An edge connects nodes. >>> >>> * Edges of **directed graphs** flow in only one direction; >>> and so require two edges with separate attributes >>> (e.g. 'magnitude', 'scale' >>> >>> | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph >>> >>> * Edges of an **undirected graph** connect nodes >>> in both directions (with the same attributes). >>> >>> | Wikipedia: ``__ >>> >>> * Graphs and :ref:`trees` are **traversed** (or *walked*); >>> according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`). >>> >>> * Graph nodes can be listed in many different *orders* >>> (or with a given *ordering*): >>> >>> * Preoder >>> * Inorder >>> * Postorder >>> * Level-order >>> >>> * There are many :ref:`data structure ` >>> representatations for :ref:`graphs`. >>> >>> * There are many data serialization/marshalling >>> formats for graphs: >>> >>> * Graph edge lists can be stored as adjacency :ref:`matrices `. >>> * :ref:`NetworkX` supports a number of graph storage formats. >>> * :ref:`RDF` is a :ref:`standard semantic web ` >>> :ref:`linked data` format for :ref:`graphs`. >>> * :ref:`JSON-LD` is a :ref:`standard semantic web ` >>> :ref:`linked data` format for :ref:`graphs`. >>> >>> * There are many :ref:`Graph Databases` and :ref:`triplestores` >>> for storing graphs. >>> >>> * A cartesian product has an interesting graph representation. >>> (See :ref:`compression algorithms`) >>> >>> >>> .. index:: NetworkX >>> .. _networkx: >>> >>> NetworkX >>> ~~~~~~~~~~~ >>> | Wikipedia: https://en.wikipedia.org/wiki/NetworkX >>> | Homepage: https://networkx.github.io/ >>> | Source: git https://github.com/networkx/networkx >>> | Docs: https://networkx.github.io/documentation.html >>> | Docs: https://networkx.github.io/documentation/latest/ >>> | Docs: https://networkx.github.io/documentation/latest/tutorial/ >>> | Docs: https://networkx.github.io/documentation/latest/reference/classes.html >>> | Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html >>> >>> NetworkX is an :ref:`open source` graph algorithms library >>> written in :ref:`Python`. >>> >>> >>>> >>>> ________________________________________ >>>> From: Omaha on >>>> behalf of Jeff Hinrichs - DM&T via Omaha >>>> Sent: Tuesday, January 5, 2016 12:42 AM >>>> To: Omaha Python Users Group >>>> Cc: Jeff Hinrichs - DM&T >>>> Subject: Re: [omaha] Python Workshops @ DoSpace Group >>>> >>>> @Steve, given the enthusiasm for youth programming at the last meeting, >>>> the >>>> first course I thought we'd work on, py100, for beginning / new >>>> programmers >>>> who are interested in learning Python with a class time of 2 hours (1.5 >>>> actual) with a goal of a lab/student exercise every 12 minutes. I >>>> figure >>>> on average 8 minutes per lab giving 4 minutes of lecture and slides per >>>> lab. All of which is complete speculation at this point but I believe >>>> the >>>> twice as much lab as talk is a valid starting point. *wink* It is a >>>> very >>>> fundamental programming with Python where one of our goals should be to >>>> do >>>> no harm if an attendee wants to go farther. >>>> >>>> @adam, There is absolutely no reason why we couldn't create classes for >>>> other categories of students. My working idea is PySchool, some courses >>>> (if we get there) can have pre-requisites others ,like py100, will have >>>> no >>>> pre-reqs. >>>> >>>> >>>> >>>> On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha >>> > >>>> wrote: >>>> >>>> > Adam brought up a good point to consider. Are you aiming for people >>>> with >>>> > little to no programming experience (which is what I was thinking) or >>>> > experienced programmers wanting to learn python? >>>> > >>>> > Steve >>>> > >>>> > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha < >>>> omaha at python.org> >>>> > wrote: >>>> > >>>> > > *I should clarify this terrible sentence:* >>>> > > "For example, if you have defined methods/functions and tell them to >>>> > create >>>> > > their own, I think it's far more likely that they'll copy the way >>>> you've >>>> > > created a method/function, then to fill our it's inner workings. " >>>> > > >>>> > > *What I meant to say was:* >>>> > > "For example, if you have defined methods/functions and tell them to >>>> > create >>>> > > their own, I think it's far more likely that students would enjoy >>>> copying >>>> > > the way these are already created in the file then filling our the >>>> inner >>>> > > workings of one created for them." >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal wrote: >>>> > > >>>> > > > When I go to a workshop like this, I tend to have more >>>> fun/interest if >>>> > > I'm >>>> > > > challenged. While I appreciate the fact that you'd like to >>>> introduce >>>> > > > excellent coding practices by having a majority of the file >>>> coded, I >>>> > > > encourage you to leave a good chunk to the user. For example, if >>>> you >>>> > > have >>>> > > > defined methods/functions and tell them to create their own, I >>>> think >>>> > it's >>>> > > > far more likely that they'll copy the way you've created a >>>> > > method/function, >>>> > > > then to fill our it's inner workings. Perhaps, that's already >>>> what you >>>> > > > were thinking, but I just wanted to clarify. >>>> > > > >>>> > > > Learning Python was extremely applicable when I was solving >>>> ACM-like >>>> > > > algorithm challenges - I like the idea of converting programmers >>>> into >>>> > > > python devs - maybe even in other fields. I think that a >>>> > > challenge/problem >>>> > > > like that where a programmer can clearly see python's advantages >>>> over >>>> > > other >>>> > > > languages would be a valuable asset to the class. >>>> > > > >>>> > > > With all this said, I'm still a relative beginner - maybe even >>>> your >>>> > > target >>>> > > > demo - so take what I say with a grain of salt. >>>> > > > >>>> > > > Adam Schaal >>>> > > > >>>> > > > >>>> > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha < >>>> > > > omaha at python.org> wrote: >>>> > > > >>>> > > >> Burch, >>>> > > >> I think you are hitting the nail on the head. And it is good >>>> that you >>>> > > are >>>> > > >> pointing out that the goal might appear to be too geared to a >>>> > > programming >>>> > > >> as a profession. I am glad that you said something, because I am >>>> > > looking >>>> > > >> to approach this the other way round. That is to inspire >>>> programming >>>> > in >>>> > > >> other professions. With the current push on in the sciences for >>>> > > >> repeatable results in data analysis, I would think that within >>>> the >>>> > next >>>> > > >> decade that anyone who works with data for a profession (not >>>> > > programmer's >>>> > > >> but analysts, scientists, etc.) would be ill equipped if they >>>> can't >>>> > > >> wrangle >>>> > > >> data. >>>> > > >> >>>> > > >> To that end, many just like you and myself (when I attended >>>> college, >>>> > you >>>> > > >> only received 1 credit hour for a language class. They were >>>> > graduating >>>> > > >> Computer Scientists not programmers.) pick up a language or other >>>> > tool, >>>> > > >> based on our ability and the reference material that we have at >>>> hand >>>> > (or >>>> > > >> online). And that first exposure sits like concrete, as you >>>> stated. >>>> > The >>>> > > >> example you sited about file handling is very insightful and I >>>> think >>>> > > lends >>>> > > >> credence to my goal of making the first contact for those new to >>>> > > >> programming as positive as we can. >>>> > > >> >>>> > > >> My goal is to have the examples that we show to the class be as >>>> good >>>> > as >>>> > > we >>>> > > >> can make them. Be written in a way that lends itself to good >>>> > convention >>>> > > >> and best current practices. So that when we show students >>>> example >>>> > code >>>> > > -- >>>> > > >> it is of good quality, not a questionable example that was thrown >>>> > > together >>>> > > >> to demonstrate one thing while completely ignoring all other good >>>> > > >> practices. I believe the examples we pick for use in these still >>>> > > >> fictional >>>> > > >> classes should show not only what we want to demonstrate on the >>>> micro >>>> > > >> level >>>> > > >> but also be a good example on the macro level. So that if a >>>> > > >> student/attendee used one of our examples as a starting point for >>>> > > >> something >>>> > > >> bigger, they would be on good footing. When people first start >>>> > > >> programming we don't write code as much as borrow it from other >>>> > places. >>>> > > >> *wink* My goal is to create the best quality code examples, >>>> that >>>> > they >>>> > > >> can >>>> > > >> borrow for other things. >>>> > > >> >>>> > > >> Also, for beginners a blank file is too much. The examples I've >>>> come >>>> > up >>>> > > >> with so far require that they fill in the missing pieces, >>>> concatenate >>>> > > some >>>> > > >> strings here, finish out the function body there, but the rest >>>> of the >>>> > > code >>>> > > >> should be stellar because we wrote it for them. Doc strings >>>> where >>>> > they >>>> > > >> belong, conventions followed for naming variables (no more i, j, >>>> k >>>> > which >>>> > > >> dominate in Fortran or x and y like it is a math problem)with >>>> > > descriptive >>>> > > >> names. So that when the time comes for a student to create a >>>> variable >>>> > > out >>>> > > >> of thin air they will be more likely to be descriptive too. But >>>> even >>>> > if >>>> > > >> they don't use descriptive names students won't be berated, what >>>> > matters >>>> > > >> is >>>> > > >> that code does what is intended. >>>> > > >> >>>> > > >> As for testing, I am not going to try and sell you on it. (Like >>>> > backup >>>> > > >> and >>>> > > >> restore, most are not concerned until the ugly happens.) I am >>>> not even >>>> > > >> planning on talking about it in these opening workshops. >>>> However, >>>> > that >>>> > > >> doesn't mean I am going to favor code examples that are not >>>> testable. >>>> > > Far >>>> > > >> from it. Everyone of my current example exercises has associated >>>> > tests. >>>> > > >> The students won't run the tests but my agent, sam will. When >>>> they >>>> > > finish >>>> > > >> an exercise I'll know, as sam will let me know their code is >>>> running >>>> > and >>>> > > >> passing the tests. That also requires that the creator of the >>>> > specific >>>> > > >> lab >>>> > > >> write in a way that is testable. However, none of this is a >>>> burden to >>>> > > the >>>> > > >> student as they are not going to be running the tests or even >>>> thinking >>>> > > >> about creating testable code but they'll be learning it >>>> subliminally. >>>> > > >> >>>> > > >> And now that I've used the word, subliminal -- I just realized >>>> that >>>> > was >>>> > > my >>>> > > >> goal all the time. In each example, given on a slide or as an >>>> > exercise >>>> > > >> there is the part that you are talking about discretely. >>>> Focusing on >>>> > > that >>>> > > >> topic. However, the surrounding and supporting code is also >>>> teaching >>>> > > and >>>> > > >> informing the student. That is the part that needs more love in >>>> just >>>> > > >> about >>>> > > >> every example I've seen on the internet. >>>> > > >> >>>> > > >> If none of this made sense or you still don't agree (However, I >>>> think >>>> > > that >>>> > > >> I'm tripping over myself agreeing with you.) please say so. The >>>> point >>>> > > of >>>> > > >> this thread is to have a conversation where we can flesh out some >>>> > > >> reasonable goals and then see if we can meet them. So if you are >>>> > > reading >>>> > > >> this and have an opinion, a point, a question then please, please >>>> > chime >>>> > > >> in. >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha < >>>> > > omaha at python.org> >>>> > > >> wrote: >>>> > > >> >>>> > > >> > >>>> > > >> > I will make an observation - this is not meant to be critical >>>> but I >>>> > > want >>>> > > >> > you (collectively) to chew on it. If I want to learn to be a >>>> > > >> programmer I >>>> > > >> > would look for a well structured learning path. If I want to >>>> learn >>>> > to >>>> > > >> do >>>> > > >> > things to make my life easier I am not sure I want to take the >>>> same >>>> > > >> path as >>>> > > >> > if I wanted to learn to be a programmer. >>>> > > >> > >>>> > > >> > This note is sent in response to both Jeff's and Wes's posting. >>>> > > Please >>>> > > >> I >>>> > > >> > am not trying to be critical but you guys are programmers by >>>> > training >>>> > > >> and >>>> > > >> > vocation I am not. I don't have the time to learn to be a >>>> > programmer. >>>> > > >> > Unit Tests, what the heck are those? Why do I care? >>>> > > >> > >>>> > > >> > I ask a question on SO and a bunch of idiots jump up and are >>>> > critical >>>> > > >> for >>>> > > >> > the fact that my code is not PEP 8 compliant - okay it makes >>>> them >>>> > feel >>>> > > >> good >>>> > > >> > but it does not help me. For example, for the longest time ( >>>> say 5 >>>> > > >> years) >>>> > > >> > when I opened and read a file I would do this >>>> > > >> > >>>> > > >> > mydata = open('some file path','r').readlines() >>>> > > >> > >>>> > > >> > That is not PEP 8 compliant (I don't think), but when I first >>>> > Googled >>>> > > to >>>> > > >> > learn how to open a file and read the contents into a list - I >>>> think >>>> > > >> this >>>> > > >> > is the webpage I found >>>> > > >> > >>>> > > >> > >>>> http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php >>>> > > >> > >>>> > > >> > It was only this year that I took the time to learn the right >>>> way >>>> > > >> > >>>> > > >> > with open('some file path','r') as f_handle: >>>> > > >> > data = f_handle.readlines() >>>> > > >> > >>>> > > >> > Why did I not bother learning the right way before this year, >>>> I was >>>> > > too >>>> > > >> > busy learning how to do other things and it was working for >>>> me. Why >>>> > > >> did I >>>> > > >> > even bother learning the right way, because I got sick of the >>>> way >>>> > the >>>> > > >> > conversation would get channeled if I had a question or comment >>>> > about >>>> > > >> > something and the pros would say well you are not opening the >>>> file >>>> > > >> right. >>>> > > >> > My response is who gives a drat, that is not the problem, but >>>> they >>>> > are >>>> > > >> > stuck on that issue. >>>> > > >> > >>>> > > >> > I am probably not explaining this well - certainly you want to >>>> teach >>>> > > >> > people the right way but I would be careful about how far you >>>> take >>>> > it. >>>> > > >> Our >>>> > > >> > software is used by over 5,000 people and I have never written >>>> a >>>> > unit >>>> > > >> test >>>> > > >> > (have no clue). I know that is not a big number but it is the >>>> > amazing >>>> > > >> > thing about Python. >>>> > > >> > >>>> > > >> > Don't cringe, drink some OJ! >>>> > > >> > >>>> > > >> > Just an observation. >>>> > > >> > >>>> > > >> > Happy New Year >>>> > > >> > >>>> > > >> > Burch >>>> > > >> > ________________________________________ >>>> > > >> > From: Omaha >>>> on >>>> > > >> behalf >>>> > > >> > of Wes Turner via Omaha >>>> > > >> > Sent: Sunday, January 3, 2016 8:12 PM >>>> > > >> > To: Omaha Python Users Group >>>> > > >> > Cc: Wes Turner >>>> > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group >>>> > > >> > >>>> > > >> > https://wrdrd.com/docs/tools/#python >>>> > > >> > * http://learnxinyminutes.com/docs/python/ # ./git >>>> > > >> > >>>> > > >> > "[omaha] For Python beginners" >>>> > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html >>>> > > >> > >>>> > > >> > * http://docs.python.org/tutorial >>>> > > >> > * >>>> > > >>>> https://scipy-lectures.github.io/intro/language/python_language.html >>>> > > >> > * https://github.com/audreyr/cookiecutter- >>>> > > >> > pypackage >>>> > > >> > >>>> > > >> > >>>> > > >> > *Create and test a package w/ git[hub] and CI" >>>> > > >> > >>>> > > >> > * Rosalind [Bioinformatics] exercises are outstanding >>>> > > >> > 1. they're already set up for online grading/points >>>> > > >> > 2. you get to learn about the domain >>>> > > >> > * | Homepage: http://rosalind.info/ >>>> > > >> > * https://wrdrd.com/docs/consulting/data-science#rosalind >>>> > > >> > >>>> > > >> > * "How to create and *test* a package for your Rosalind >>>> solutions" >>>> > > >> > >>>> > > >> > * "Testing as a core scientific process #126" >>>> > > >> > >>>> https://github.com/scipy-lectures/scipy-lecture-notes/issues/126 >>>> > > >> > >>>> > > >> > * TDD first! >>>> > > >> > [null] hypothesis, code, test!, [commit] >>>> > > >> > >>>> > > >> > * >>>> > > >> > >>>> > > >> >>>> > > >>>> > >>>> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution >>>> > > >> > >>>> > > >> > * >>>> > > >> > >>>> > > >>>> https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd >>>> > > >> > * >>>> > > >> > >>>> https://wrdrd.com/docs/consulting/education-technology#nbgrader >>>> > > >> > >>>> > > >> > [omaha] November 18 Meeting - Celebrate and Plan! >>>> > > >> > >>>> https://mail.python.org/pipermail/omaha/2015-November/001943.html >>>> > > >> > >>>> > > >> > > The software carpentry lessons are great (and designed for >>>> group >>>> > > >> > instruction IIUC): >>>> > > >> > > * https://software-carpentry.org/lessons.html >>>> > > >> > >>>> > > >> > ... >>>> https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields >>>> > : >>>> > > >> > >>>> > > >> > * >>>> > > >> >>>> > >>>> https://wrdrd.com/docs/consulting/software-development#computer-science >>>> > > >> > To all of who offered to help in any form with giving Python >>>> > > workshops @ >>>> > > >> > DoSpace, >>>> > > >> > >>>> > > >> > I've been hammering out some ideas for a class targeted at >>>> those new >>>> > > to >>>> > > >> > programming in particular. >>>> > > >> > >>>> > > >> > We should probably start a conversation about it and see what >>>> we can >>>> > > put >>>> > > >> > together. >>>> > > >> > >>>> > > >> > Here are some goals, because we need to have something to >>>> measure >>>> > > >> against: >>>> > > >> > >>>> > > >> > * should allow for students to do something with Python as >>>> soon as >>>> > > >> possible >>>> > > >> > - don't want them bored and inattentive. >>>> > > >> > >>>> > > >> > * The See/Do affect of examples should have the following >>>> qualities: >>>> > > >> > >>>> > > >> > * be pep8 compliant (only deviating when we are teaching a >>>> > specific >>>> > > >> > topic.) >>>> > > >> > >>>> > > >> > * be easy to test. No example has print or input in the >>>> middle >>>> > of a >>>> > > >> > function other than main or one designed to deal with user >>>> > > interaction. >>>> > > >> > Too many examples mix I/O with processing leaving students >>>> with a >>>> > > knack >>>> > > >> for >>>> > > >> > writing hard to test code. (All example code and problems >>>> should >>>> > have >>>> > > >> an >>>> > > >> > associated test suite [py.test] to accompany them.) >>>> > > >> > >>>> > > >> > * Should emphasize DRY and only deviate when showing them >>>> undry >>>> > > >> > situations and how to correct. >>>> > > >> > >>>> > > >> > * Early coding problems are often quite boring, so there >>>> should be >>>> > > >> some >>>> > > >> > sort of setup for them, a backstory, to get the students >>>> invested in >>>> > > >> their >>>> > > >> > solution. For Example - learning comparison operators -- "Sam >>>> is a >>>> > > >> young >>>> > > >> > AI with untrained neural nets and we need to write a module to >>>> help >>>> > > >> train >>>> > > >> > him had to organize two things so he can put them on a shelf in >>>> > > order." >>>> > > >> > Sounds a lot more interesting than write a function that >>>> compares 2 >>>> > > >> things >>>> > > >> > and output them in order from smallest to largest. *yawn* >>>> > > >> > >>>> > > >> > >>>> > > >> > So what are your ideas? What are you willing to help out with? >>>> > We'll >>>> > > >> need >>>> > > >> > material reviewers, testers and trainers and TAs for actual >>>> classes. >>>> > > >> > >>>> > > >> > >>>> > > >> > I believe someone has offered to be our DoSpace ambassador. >>>> Sorry, >>>> > > but I >>>> > > >> > didn't write down your name at the meeting. Would you speak >>>> up once >>>> > > >> again. >>>> > > >> > >>>> > > >> > >>>> > > >> > -- >>>> > > >> > Best, >>>> > > >> > >>>> > > >> > Jeff Hinrichs >>>> > > >> > 402.218.1473 >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > _______________________________________________ >>>> > > >> > Omaha Python Users Group mailing list >>>> > > >> > Omaha at python.org >>>> > > >> > https://mail.python.org/mailman/listinfo/omaha >>>> > > >> > http://www.OmahaPython.org >>>> > > >> > >>>> > > >> >>>> > > >> >>>> > > >> >>>> > > >> -- >>>> > > >> Best, >>>> > > >> >>>> > > >> Jeff Hinrichs >>>> > > >> 402.218.1473 >>>> > > >> _______________________________________________ >>>> > > >> Omaha Python Users Group mailing list >>>> > > >> Omaha at python.org >>>> > > >> https://mail.python.org/mailman/listinfo/omaha >>>> > > >> http://www.OmahaPython.org >>>> > > >> >>>> > > > >>>> > > > >>>> > > _______________________________________________ >>>> > > Omaha Python Users Group mailing list >>>> > > Omaha at python.org >>>> > > https://mail.python.org/mailman/listinfo/omaha >>>> > > http://www.OmahaPython.org >>>> > > >>>> > _______________________________________________ >>>> > Omaha Python Users Group mailing list >>>> > Omaha at python.org >>>> > https://mail.python.org/mailman/listinfo/omaha >>>> > http://www.OmahaPython.org >>>> > >>>> >>>> >>>> >>>> -- >>>> Best, >>>> >>>> Jeff Hinrichs >>>> 402.218.1473 >>>> _______________________________________________ >>>> Omaha Python Users Group mailing list >>>> Omaha at python.org >>>> https://mail.python.org/mailman/listinfo/omaha >>>> http://www.OmahaPython.org >>>> _______________________________________________ >>>> Omaha Python Users Group mailing list >>>> Omaha at python.org >>>> https://mail.python.org/mailman/listinfo/omaha >>>> http://www.OmahaPython.org >>>> >>> >>> >> > From jeffh at dundeemt.com Fri Jan 8 08:10:55 2016 From: jeffh at dundeemt.com (Jeff Hinrichs - DM&T) Date: Fri, 8 Jan 2016 07:10:55 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: ** I've clipped the message since we have exceeded the default size limit of 40K by a factor of 3** So there are lots of ideas for projects, which is great. Now we need to decide on the audience we will be targeting for the first class. As I stated earlier, there seemed to be an impromptu consensus at the the November meeting, to target people who had not programmed or had very little programming experience. Also, we would skew towards a younger demographic. I would like to put a finer point on that and really nail down the target demographic. Then we can start determining the topics to cover and start a syllabus. Once that is in place, we can then start selecting candidate projects/labs and that will dictate what we need to teach. From wes.turner at gmail.com Fri Jan 8 09:13:45 2016 From: wes.turner at gmail.com (Wes Turner) Date: Fri, 8 Jan 2016 08:13:45 -0600 Subject: [omaha] Python Workshops @ DoSpace Group In-Reply-To: References: Message-ID: On Fri, Jan 8, 2016 at 7:06 AM, Wes Turner wrote: > > > On Thu, Jan 7, 2016 at 9:51 PM, Wes Turner wrote: > >> ## project files >> >> * Generate a project with cookiecutter and a cookiecutter (e.g. >> cookiecutter-pypackage) >> * DOC: README.rst: >> * BLD: notebooks/: mkdir notebooks/ || git clone >> TODO/cookiecutter-jupyter-notebooks-project >> >> .. code:: ipython >> >> ls >> %ls >> !ls >> Makefile # make, Gruntfile.js, Gulpfile.js >> # BUILD # pants build >> # Dockerfile >> README.rst >> setup.py >> pkgname/__init__.py >> pkgname/pkgname.py >> docs/Makefile >> docs/conf.py >> docs/index.rst >> docs/readme.rst <- ../README.rst # headings >> docs/notebooks -> ../notebooks # symlink: ln -s docs/notebooks >> notebooks/index.py.ipynb >> >> > tox.ini > .travis.yml > pkgname/tests/ > > > - [ ] TST: tox.ini -- Python test config and parametrization > - [ ] TST: .travis.yml -- CI build testing w/ Travis > - [ ] TST: tests/ -- tests outside of the package > - [ ] TST: pkgname/tests/ -- tests within the package [bundled] > > > pkgname/tests/__init__.py > pkgname/tests/test_*.py > pkgname/tests/main.py > > > # pkgname/tests -- tests bundled within the module > - importable at runtime > - sometimes requires changing paths in e.g. Makefile, setup.py, tox.ini > - useful for startup testing in-situ > > pkgname --test [args] > python -m pkgname --test [args] > > > (e.g. there is a --test CLI argument > to a console_script entrypoint "pkgname" > that causes the tests to run at startup and fail (return nonzero) > if there are errors > (seealso: "skip" "skipif")) > > > pkgname/tests/__init__.py > pkgname/tests/test_*.py > pkgname/tests/main.py > > > > Half of the time, it seems that writing the tests turns out to be more > than half of the answer. > > - [ ] DOC: add this to "awesome-python-testing" ("awesome" *) > - [ ] DOC: add this to > https://wrdrd.com/docs/consulting/software-development#test-driven-development > > ** I've clipped the message since we have exceeded the default size limit of 40K by a factor of 3** [I've clipped the thread history from the EmailMessage text after the message this message is in reply to: https://mail.python.org/pipermail/omaha/2016-January/002010.html ] * "awesome": https://wrdrd.com/docs/consulting/data-science#awesome-public-datasets awesome-public-datasets? https://github.com/caesar0301/awesome-public-datasets - https://github.com/caesar0301/awesome-public-datasets#search-engines Awesome? https://github.com/bayandin/awesome-awesomeness - https://github.com/onurakpolat/awesome-bigdata - https://github.com/josephmisiti/awesome-machine-learning - https://github.com/caesar0301/awesome-public-datasets From wereapwhatwesow at gmail.com Fri Jan 8 16:28:36 2016 From: wereapwhatwesow at gmail.com (Steve Young) Date: Fri, 8 Jan 2016 15:28:36 -0600 Subject: [omaha] January 20 Meeting Details Message-ID: *Topic/Speaker ? A Novice?s Experience Teaching Python to Kid?s and Scientists/Burch Kealey**Location *? The recently opened *Do Space* at 7205 Dodge Street, Omaha. SW corner of 72nd and Dodge. Meeting starts at *6:30* *pm, Wednesday, January 20 . *Arrive early and check out the space. Forward this to interested parties, or share this link: http://www.omahapython.org/blog/archives/454. I think the past few months Hubert was getting the details updated on techomaha.com - @Hubert: can you (or someone else) make this happen? Or send me the contact info to send it to? Remind me to discus at the meeting, or reply to the list, but what is the consensus on food at the meetings? I think it is nice to have some snacks/drinks available, as long as it is easy and not too expensive. Steve From jrguliz at yahoo.com Fri Jan 8 17:07:51 2016 From: jrguliz at yahoo.com (Joe Gulizia) Date: Fri, 8 Jan 2016 22:07:51 +0000 (UTC) Subject: [omaha] January 20 Meeting Details References: <1748041865.1870150.1452290871372.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> The Dunkin' Donuts next to Do_ is now open. FYI Joe -------------------------------------------- On Fri, 1/8/16, Steve Young via Omaha wrote: Subject: [omaha] January 20 Meeting Details To: "Omaha Python Users Group" Cc: "Steve Young" Date: Friday, January 8, 2016, 3:28 PM *Topic/Speaker ? A Novice?s Experience Teaching Python to Kid?s and Scientists/Burch Kealey**Location *? The recently opened *Do Space* at 7205 Dodge Street, Omaha.? SW corner of 72nd and Dodge. Meeting starts at *6:30* *pm, Wednesday, January 20 . *Arrive early and check out the space. Forward this to interested parties, or share this link: http://www.omahapython.org/blog/archives/454. I think the past few months Hubert was getting the details updated on techomaha.com - @Hubert: can you (or someone else) make this happen?? Or send me the contact info to send it to? Remind me to discus at the meeting, or reply to the list, but what is the consensus on food at the meetings?? I think it is nice to have some snacks/drinks available, as long as it is easy and not too expensive. Steve _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From wereapwhatwesow at gmail.com Mon Jan 11 19:15:22 2016 From: wereapwhatwesow at gmail.com (Steve Young) Date: Mon, 11 Jan 2016 18:15:22 -0600 Subject: [omaha] January 20 Meeting Details In-Reply-To: <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> References: <1748041865.1870150.1452290871372.JavaMail.yahoo.ref@mail.yahoo.com> <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> Message-ID: I am more of a Krispy Kreme Hot Doughnuts Now guy. [image: Inline image 1] In case you haven't seen it, the white is a waterfall of hot sugary goodness. For those of you thinking, 'this is a python email list', check this out: http://blog.trinket.io/doughnuts-for-bugs/ and https://trinket.io/ and https://docs.trinket.io/getting-started#/3-teaching-with-trinkets/using-interactive-examples Which reminded me of http://www.codeskulptor.org/ which was a browser based python I used with a coursera class a while back - it gave all the students the same environment. Steve On Fri, Jan 8, 2016 at 4:07 PM, Joe Gulizia via Omaha wrote: > The Dunkin' Donuts next to Do_ is now open. FYI > > Joe > -------------------------------------------- > On Fri, 1/8/16, Steve Young via Omaha wrote: > > Subject: [omaha] January 20 Meeting Details > To: "Omaha Python Users Group" > Cc: "Steve Young" > Date: Friday, January 8, 2016, 3:28 PM > > *Topic/Speaker ? A Novice?s > Experience Teaching Python to Kid?s and > Scientists/Burch Kealey**Location *? The recently opened > *Do Space* at 7205 > Dodge Street, Omaha. SW corner of 72nd and Dodge. > Meeting starts at *6:30* > *pm, > Wednesday, January 20 > . > *Arrive > early and check out the space. > > Forward this to interested parties, or share this link: > http://www.omahapython.org/blog/archives/454. > I think the past few months Hubert was getting the details > updated on > techomaha.com - @Hubert: can you (or someone else) make this > happen? Or > send me the contact info to send it to? > > Remind me to discus at the meeting, or reply to the list, > but what is the > consensus on food at the meetings? I think it is nice > to have some > snacks/drinks available, as long as it is easy and not too > expensive. > > Steve > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 363376 bytes Desc: not available URL: From wes.turner at gmail.com Tue Jan 12 08:20:33 2016 From: wes.turner at gmail.com (Wes Turner) Date: Tue, 12 Jan 2016 07:20:33 -0600 Subject: [omaha] January 20 Meeting Details In-Reply-To: References: <1748041865.1870150.1452290871372.JavaMail.yahoo.ref@mail.yahoo.com> <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> Message-ID: * http://www.pythontutor.com/ * https://github.com/pgbovine/OnlinePythonTutor/blob/master/v4-cokapi/Dockerfile you might be thinking of brython? * Python -> Brython Compiler -> Javascript * * http://brython.info/doc/en/index.html# * the HTML docs are useful (w/ the HTML tags and DOM traversal API and all) * IIUC, the Javascript produced by the Brython transpiler is somewhat opaque: it's a big ball of mud after it's transformed to Javascript. * Google GWT uses the [closure] compiler to transform Java to JS. https://en.wikipedia.org/wiki/Google_Web_Toolkit * pyjs https://en.wikipedia.org/wiki/Pyjs * Scala https://github.com/scala-js/scala-js http://www.scala-js.org/ * ROSE Compiler transpiles from many languages to many languages. https://en.wikipedia.org/wiki/ROSE_(compiler_framework) | Wrdrdtools: https://wrdrd.com/docs/tools/index#rose ... Some less opaque ways of working with JS: * CoffeeScript * TypeScript (JS, Types, INTERFACES) https://wrdrd.com/docs/tools/index#typescript * NodeJS, NPM, Bower, Grunt, Gulp https://wrdrd.com/docs/tools/index#node-js https://wrdrd.com/docs/tools/index#npm * https://wrdrd.com/docs/tools/index#bower * https://wrdrd.com/docs/tools/index#grunt * https://wrdrd.com/docs/tools/index#gulp ... Sorry for all the wrdrdtools links; it's more efficient to link to where I've already collected many of the source, docs, homepage, etc. URLs (relevant AND self-serving / self-serving and relevant) On Jan 11, 2016 6:23 PM, "Steve Young via Omaha" wrote: > I am more of a Krispy Kreme Hot Doughnuts Now guy. > > [image: Inline image 1] > > In case you haven't seen it, the white is a waterfall of hot sugary > goodness. > > For those of you thinking, 'this is a python email list', check this out: > http://blog.trinket.io/doughnuts-for-bugs/ > and > https://trinket.io/ and > > https://docs.trinket.io/getting-started#/3-teaching-with-trinkets/using-interactive-examples > > Which reminded me of http://www.codeskulptor.org/ which was a browser > based > python I used with a coursera class a while back - it gave all the students > the same environment. > > Steve > > On Fri, Jan 8, 2016 at 4:07 PM, Joe Gulizia via Omaha > wrote: > > > The Dunkin' Donuts next to Do_ is now open. FYI > > > > Joe > > -------------------------------------------- > > On Fri, 1/8/16, Steve Young via Omaha wrote: > > > > Subject: [omaha] January 20 Meeting Details > > To: "Omaha Python Users Group" > > Cc: "Steve Young" > > Date: Friday, January 8, 2016, 3:28 PM > > > > *Topic/Speaker ? A Novice?s > > Experience Teaching Python to Kid?s and > > Scientists/Burch Kealey**Location *? The recently opened > > *Do Space* at 7205 > > Dodge Street, Omaha. SW corner of 72nd and Dodge. > > Meeting starts at *6:30* > > *pm, > > Wednesday, January 20 > > . > > *Arrive > > early and check out the space. > > > > Forward this to interested parties, or share this link: > > http://www.omahapython.org/blog/archives/454. > > I think the past few months Hubert was getting the details > > updated on > > techomaha.com - @Hubert: can you (or someone else) make this > > happen? Or > > send me the contact info to send it to? > > > > Remind me to discus at the meeting, or reply to the list, > > but what is the > > consensus on food at the meetings? I think it is nice > > to have some > > snacks/drinks available, as long as it is easy and not too > > expensive. > > > > Steve > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From wes.turner at gmail.com Tue Jan 12 08:22:25 2016 From: wes.turner at gmail.com (Wes Turner) Date: Tue, 12 Jan 2016 07:22:25 -0600 Subject: [omaha] January 20 Meeting Details In-Reply-To: References: <1748041865.1870150.1452290871372.JavaMail.yahoo.ref@mail.yahoo.com> <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> Message-ID: On Jan 12, 2016 7:20 AM, "Wes Turner" wrote: > > * http://www.pythontutor.com/ > * https://github.com/pgbovine/OnlinePythonTutor/blob/master/v4-cokapi/Dockerfile > > you might be thinking of brython? > > * Python -> Brython Compiler -> Javascript * > * http://brython.info/doc/en/index.html# > * the HTML docs are useful (w/ the HTML tags and DOM traversal API and all) > > * IIUC, the Javascript produced by the Brython transpiler is somewhat opaque: it's a big ball of mud after it's transformed to Javascript. > > * Google GWT uses the [closure] compiler to transform Java to JS. - [ ] DOC,BUG: this is incorrect. there is a GWT-specific Java to JS transpiler. Closure Compiler is not GWT-specific. > https://en.wikipedia.org/wiki/Google_Web_Toolkit > > * pyjs > https://en.wikipedia.org/wiki/Pyjs > > * Scala > https://github.com/scala-js/scala-js > http://www.scala-js.org/ > > * ROSE Compiler transpiles from many languages to many languages. > https://en.wikipedia.org/wiki/ROSE_(compiler_framework) > | Wrdrdtools: https://wrdrd.com/docs/tools/index#rose > > ... > > Some less opaque ways of working with JS: > > * CoffeeScript > * TypeScript (JS, Types, INTERFACES) > https://wrdrd.com/docs/tools/index#typescript > > * NodeJS, NPM, Bower, Grunt, Gulp > https://wrdrd.com/docs/tools/index#node-js > https://wrdrd.com/docs/tools/index#npm > * https://wrdrd.com/docs/tools/index#bower > * https://wrdrd.com/docs/tools/index#grunt > * https://wrdrd.com/docs/tools/index#gulp > > ... Sorry for all the wrdrdtools links; it's more efficient to link to where I've already collected many of the source, docs, homepage, etc. URLs (relevant AND self-serving / self-serving and relevant) > > On Jan 11, 2016 6:23 PM, "Steve Young via Omaha" wrote: >> >> I am more of a Krispy Kreme Hot Doughnuts Now guy. >> >> [image: Inline image 1] >> >> In case you haven't seen it, the white is a waterfall of hot sugary >> goodness. >> >> For those of you thinking, 'this is a python email list', check this out: >> http://blog.trinket.io/doughnuts-for-bugs/ >> and >> https://trinket.io/ and >> https://docs.trinket.io/getting-started#/3-teaching-with-trinkets/using-interactive-examples >> >> Which reminded me of http://www.codeskulptor.org/ which was a browser based >> python I used with a coursera class a while back - it gave all the students >> the same environment. >> >> Steve >> >> On Fri, Jan 8, 2016 at 4:07 PM, Joe Gulizia via Omaha >> wrote: >> >> > The Dunkin' Donuts next to Do_ is now open. FYI >> > >> > Joe >> > -------------------------------------------- >> > On Fri, 1/8/16, Steve Young via Omaha wrote: >> > >> > Subject: [omaha] January 20 Meeting Details >> > To: "Omaha Python Users Group" >> > Cc: "Steve Young" >> > Date: Friday, January 8, 2016, 3:28 PM >> > >> > *Topic/Speaker ? A Novice?s >> > Experience Teaching Python to Kid?s and >> > Scientists/Burch Kealey**Location *? The recently opened >> > *Do Space* at 7205 >> > Dodge Street, Omaha. SW corner of 72nd and Dodge. >> > Meeting starts at *6:30* >> > *pm, >> > Wednesday, January 20 >> > . >> > *Arrive >> > early and check out the space. >> > >> > Forward this to interested parties, or share this link: >> > http://www.omahapython.org/blog/archives/454. >> > I think the past few months Hubert was getting the details >> > updated on >> > techomaha.com - @Hubert: can you (or someone else) make this >> > happen? Or >> > send me the contact info to send it to? >> > >> > Remind me to discus at the meeting, or reply to the list, >> > but what is the >> > consensus on food at the meetings? I think it is nice >> > to have some >> > snacks/drinks available, as long as it is easy and not too >> > expensive. >> > >> > Steve >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> > _______________________________________________ >> > Omaha Python Users Group mailing list >> > Omaha at python.org >> > https://mail.python.org/mailman/listinfo/omaha >> > http://www.OmahaPython.org >> >> _______________________________________________ >> Omaha Python Users Group mailing list >> Omaha at python.org >> https://mail.python.org/mailman/listinfo/omaha >> http://www.OmahaPython.org From hubert.hickman at gmail.com Tue Jan 12 12:07:27 2016 From: hubert.hickman at gmail.com (Hubert Hickman) Date: Tue, 12 Jan 2016 11:07:27 -0600 Subject: [omaha] January 20 Meeting Details In-Reply-To: References: <1748041865.1870150.1452290871372.JavaMail.yahoo.ref@mail.yahoo.com> <1748041865.1870150.1452290871372.JavaMail.yahoo@mail.yahoo.com> Message-ID: I've put it on Tech Omaha. Hubert On Tue, Jan 12, 2016 at 7:22 AM, Wes Turner via Omaha wrote: > On Jan 12, 2016 7:20 AM, "Wes Turner" wrote: > > > > * http://www.pythontutor.com/ > > * > > https://github.com/pgbovine/OnlinePythonTutor/blob/master/v4-cokapi/Dockerfile > > > > you might be thinking of brython? > > > > * Python -> Brython Compiler -> Javascript * > > * http://brython.info/doc/en/index.html# > > * the HTML docs are useful (w/ the HTML tags and DOM traversal API and > all) > > > > * IIUC, the Javascript produced by the Brython transpiler is somewhat > opaque: it's a big ball of mud after it's transformed to Javascript. > > > > * Google GWT uses the [closure] compiler to transform Java to JS. > > - [ ] DOC,BUG: this is incorrect. there is a GWT-specific Java to JS > transpiler. Closure Compiler is not GWT-specific. > > > https://en.wikipedia.org/wiki/Google_Web_Toolkit > > > > * pyjs > > https://en.wikipedia.org/wiki/Pyjs > > > > * Scala > > https://github.com/scala-js/scala-js > > http://www.scala-js.org/ > > > > * ROSE Compiler transpiles from many languages to many languages. > > https://en.wikipedia.org/wiki/ROSE_(compiler_framework) > > | Wrdrdtools: https://wrdrd.com/docs/tools/index#rose > > > > ... > > > > Some less opaque ways of working with JS: > > > > * CoffeeScript > > * TypeScript (JS, Types, INTERFACES) > > https://wrdrd.com/docs/tools/index#typescript > > > > * NodeJS, NPM, Bower, Grunt, Gulp > > https://wrdrd.com/docs/tools/index#node-js > > https://wrdrd.com/docs/tools/index#npm > > * https://wrdrd.com/docs/tools/index#bower > > * https://wrdrd.com/docs/tools/index#grunt > > * https://wrdrd.com/docs/tools/index#gulp > > > > ... Sorry for all the wrdrdtools links; it's more efficient to link to > where I've already collected many of the source, docs, homepage, etc. URLs > (relevant AND self-serving / self-serving and relevant) > > > > On Jan 11, 2016 6:23 PM, "Steve Young via Omaha" > wrote: > >> > >> I am more of a Krispy Kreme Hot Doughnuts Now guy. > >> > >> [image: Inline image 1] > >> > >> In case you haven't seen it, the white is a waterfall of hot sugary > >> goodness. > >> > >> For those of you thinking, 'this is a python email list', check this > out: > >> http://blog.trinket.io/doughnuts-for-bugs/ > >> and > >> https://trinket.io/ and > >> > > https://docs.trinket.io/getting-started#/3-teaching-with-trinkets/using-interactive-examples > >> > >> Which reminded me of http://www.codeskulptor.org/ which was a browser > based > >> python I used with a coursera class a while back - it gave all the > students > >> the same environment. > >> > >> Steve > >> > >> On Fri, Jan 8, 2016 at 4:07 PM, Joe Gulizia via Omaha > > >> wrote: > >> > >> > The Dunkin' Donuts next to Do_ is now open. FYI > >> > > >> > Joe > >> > -------------------------------------------- > >> > On Fri, 1/8/16, Steve Young via Omaha wrote: > >> > > >> > Subject: [omaha] January 20 Meeting Details > >> > To: "Omaha Python Users Group" > >> > Cc: "Steve Young" > >> > Date: Friday, January 8, 2016, 3:28 PM > >> > > >> > *Topic/Speaker ? A Novice?s > >> > Experience Teaching Python to Kid?s and > >> > Scientists/Burch Kealey**Location *? The recently opened > >> > *Do Space* at 7205 > >> > Dodge Street, Omaha. SW corner of 72nd and Dodge. > >> > Meeting starts at *6:30* > >> > *pm, > >> > Wednesday, January 20 > >> > . > >> > *Arrive > >> > early and check out the space. > >> > > >> > Forward this to interested parties, or share this link: > >> > http://www.omahapython.org/blog/archives/454. > >> > I think the past few months Hubert was getting the details > >> > updated on > >> > techomaha.com - @Hubert: can you (or someone else) make this > >> > happen? Or > >> > send me the contact info to send it to? > >> > > >> > Remind me to discus at the meeting, or reply to the list, > >> > but what is the > >> > consensus on food at the meetings? I think it is nice > >> > to have some > >> > snacks/drinks available, as long as it is easy and not too > >> > expensive. > >> > > >> > Steve > >> > _______________________________________________ > >> > Omaha Python Users Group mailing list > >> > Omaha at python.org > >> > https://mail.python.org/mailman/listinfo/omaha > >> > http://www.OmahaPython.org > >> > _______________________________________________ > >> > Omaha Python Users Group mailing list > >> > Omaha at python.org > >> > https://mail.python.org/mailman/listinfo/omaha > >> > http://www.OmahaPython.org > >> > >> _______________________________________________ > >> Omaha Python Users Group mailing list > >> Omaha at python.org > >> https://mail.python.org/mailman/listinfo/omaha > >> http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org > From wereapwhatwesow at gmail.com Fri Jan 15 09:41:03 2016 From: wereapwhatwesow at gmail.com (Steve Young) Date: Fri, 15 Jan 2016 08:41:03 -0600 Subject: [omaha] January Meeting Reminder - Next Wednesday, 1/20 Message-ID: Here is your 5 day reminder. ? *Topic/Speaker ? *A Novice?s Experience Teaching Python to Kid?s and Scientists/Burch Kealey *Location *? The recently opened *Do Space* at 7205 Dodge Street, Omaha. SW corner of 72nd and Dodge. *Meeting Time:* *6:30* *pm, Wednesday, January 20 . *Arrive early and check out the space. Forward this to interested parties, or share this link: http://www.omahapython.org/blog/archives/454. From bkealey at unomaha.edu Sat Jan 16 22:27:41 2016 From: bkealey at unomaha.edu (Burch Kealey) Date: Sun, 17 Jan 2016 03:27:41 +0000 Subject: [omaha] Sign Board at DO Space Message-ID: I was headed West on Dodge today, making the turn South on 72nd. I was looking at the sign on the DO Space building and thought - what about having our meeting time and topics posted on the board. Therefore I stopped in and cornered a staff member who told me that their marketing company decides what should be on the sign. If you know me, that is not a good enough answer - we just need to convice the marketing company that they should post an event schedule on the sign. So I asked who I could talk to next in the heirarchy. I think I made the young man uncomfortable as he noted that the signs would not change - I can be a bull in a china shop. None the less he gave me two cards of people to talk to: Rachel Tepper Operations Manager - direct line 402-979-7377 email rtepper at dospace.org Karen Pietsch Director of Community Learning no phone numbers but an email address of kpietsch at dospace.org I thought about scheduling a meeting but then decided that we really need to have a voice - that is one person who has the burden/responsibility of external communication. I thought that given my nature to mostly lurk it was not appropriate for me to co-opt that role. Thus I am dumping the idea (having our meetings hit the board) and the responsibility for exploring this avenue to the group. With regards Burch I should also note, I think I indicated in the last meeting that I would help teach classes. I am going to retract that offer. I will be delighted to share my observations and provide some limited background support. I was thinking through how I could prepare for a class and my eleven year old kept invading my thoughts. I am over extended and I think I need to focus on a simpler goal, attend more meetings. From jrguliz at yahoo.com Mon Jan 18 00:01:11 2016 From: jrguliz at yahoo.com (Joe Gulizia) Date: Mon, 18 Jan 2016 05:01:11 +0000 (UTC) Subject: [omaha] Sign Board at DO Space References: <1594014723.5297079.1453093271894.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <1594014723.5297079.1453093271894.JavaMail.yahoo@mail.yahoo.com> I was at the Council Bluffs Public Library yesterday and found out that they are offering FREE computer classes (Wednesday nights) and that they have a MakerSpace now. They have offered their MakerSpace to us for meetings (first-come, first served...whatever 2 groups or so claim) if we desire. Just an opportunity that I would mention to the list. The tech there, Creighton, uses Linux Mint among other OS'es. (Same post going to the OLUG list) Joe G. -------------------------------------------- On Sun, 1/17/16, Burch Kealey via Omaha wrote: Subject: [omaha] Sign Board at DO Space To: "Omaha Python Users Group" Cc: "Burch Kealey" Date: Sunday, January 17, 2016, 9:27 AM I was headed West on Dodge today, making the turn South on 72nd. I was looking at the sign on the DO Space building and thought - what about having our meeting time and topics posted on the board. Therefore I stopped in and cornered a staff member who told me that their marketing company decides what should be on the sign.? If you know me, that is not a good enough answer - we just need to convice the marketing company that they should post an event schedule on the sign.? So I asked who I could talk to next in the heirarchy.? I think I made the young man uncomfortable as he noted that the signs would not change - I can be a bull in a china shop.? None the less he gave me two cards of people to talk to: Rachel Tepper? Operations Manager - direct line 402-979-7377 email rtepper at dospace.org Karen Pietsch Director of Community Learning no phone numbers but an email address of kpietsch at dospace.org I thought about scheduling a meeting but then decided that we really need to have a voice - that is one person who has the burden/responsibility of external communication.? I thought that given my nature to mostly lurk it was not appropriate for me to co-opt that role. Thus I am dumping the idea (having our meetings hit the board) and the responsibility for exploring this avenue to the group. With regards Burch I should also note, I think I indicated in the last meeting that I would help teach classes.? I am going to retract that offer.? I will be delighted to share my observations and provide some limited background support.? I was thinking through how I could prepare for a class and my eleven year old kept invading my thoughts.? I am over extended and I think I need to focus on a simpler goal, attend more meetings. _______________________________________________ Omaha Python Users Group mailing list Omaha at python.org https://mail.python.org/mailman/listinfo/omaha http://www.OmahaPython.org From keithnickum at gmail.com Wed Jan 20 17:08:08 2016 From: keithnickum at gmail.com (Keith Nickum) Date: Wed, 20 Jan 2016 16:08:08 -0600 Subject: [omaha] January Meeting Reminder - Next Wednesday, 1/20 In-Reply-To: References: Message-ID: Just wanted to note I'm not going to be able to make it to the meeting tonight. I believe I'm up next to cover web scraping in February, so if there are any notes or suggestions, please feel free to send them along. Good luck with tonight everyone, stay warm! On Fri, Jan 15, 2016 at 8:41 AM, Steve Young via Omaha wrote: > Here is your 5 day reminder. ? > > *Topic/Speaker ? *A Novice?s Experience Teaching Python to Kid?s and > Scientists/Burch Kealey > *Location *? The recently opened *Do Space* > < > https://www.google.com/maps/place/Do+Space/@41.2589604,-96.026855,17z/data=!3m1!4b1!4m2!3m1!1s0x87938da0ade560c1:0x4dbe170aa3523e19 > >at > 7205 > Dodge Street, Omaha. SW corner of 72nd and Dodge. > *Meeting Time:* *6:30* > *pm, > Wednesday, January 20 > . *Arrive > early and check out the space. > > Forward this to interested parties, or share this link: > http://www.omahapython.org/blog/archives/454. > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org From wes.turner at gmail.com Wed Jan 20 17:28:31 2016 From: wes.turner at gmail.com (Wes Turner) Date: Wed, 20 Jan 2016 16:28:31 -0600 Subject: [omaha] January Meeting Reminder - Next Wednesday, 1/20 In-Reply-To: References: Message-ID: On Jan 20, 2016 4:08 PM, "Keith Nickum via Omaha" wrote: > > Just wanted to note I'm not going to be able to make it to the meeting > tonight. Same! good luck! > I believe I'm up next to cover web scraping in February, so if > there are any notes or suggestions, please feel free to send them along. https://en.wikipedia.org/wiki/Web_scraping * https://westurner.org/redditlog/#comment/cdeq2t7 * https://github.com/Psycojoker/ipython-beautifulsoup/#a-note-on-security * https://github.com/sunlightlabs * https://github.com/sunlightlabs/openstates * https://github.com/scraperwiki?tab=repositories * https://github.com/zapier?tab=repositories * https://github.com/westurner/wiki/wiki/awesome-python-testing#web-applications #GlobalGoals #HTML > BeautifulSoup > #RDFa, #JSONLD : https://github.com/westurner/pyglobalgoals/blob/develop/notebooks/globalgoals-pyglobalgoals.py.ipynb ... -> #LinkedData (#RDFa, #JSONLD) https://wrdrd.com/docs/consulting/knowledge-engineering#linked-data > > Good luck with tonight everyone, stay warm! > > On Fri, Jan 15, 2016 at 8:41 AM, Steve Young via Omaha > wrote: > > > Here is your 5 day reminder. ? > > > > *Topic/Speaker ? *A Novice?s Experience Teaching Python to Kid?s and > > Scientists/Burch Kealey > > *Location *? The recently opened *Do Space* > > < > > https://www.google.com/maps/place/Do+Space/@41.2589604,-96.026855,17z/data=!3m1!4b1!4m2!3m1!1s0x87938da0ade560c1:0x4dbe170aa3523e19 > > >at > > 7205 > > Dodge Street, Omaha. SW corner of 72nd and Dodge. > > *Meeting Time:* *6:30* > > *pm, > > Wednesday, January 20 > > . *Arrive > > early and check out the space. > > > > Forward this to interested parties, or share this link: > > http://www.omahapython.org/blog/archives/454. > > _______________________________________________ > > Omaha Python Users Group mailing list > > Omaha at python.org > > https://mail.python.org/mailman/listinfo/omaha > > http://www.OmahaPython.org > _______________________________________________ > Omaha Python Users Group mailing list > Omaha at python.org > https://mail.python.org/mailman/listinfo/omaha > http://www.OmahaPython.org