[omaha] Python Workshops @ DoSpace Group

Wes Turner wes.turner at gmail.com
Thu Jan 7 12:05:33 EST 2016


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 <wes.turner at gmail.com> 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 <wes.turner at gmail.com> wrote:
>
>>
>>
>> On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha <omaha at python.org>
>> 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 <http://schema.org/Course>*
>>   #RDFa #JSONLD
>>   https://westurner.org/opengov/us/ne/index#schema-org-course
>>
>>
>>
>>
>> .. index:: Graphs
>> .. _graphs:
>>
>> Graphs
>> ````````
>> | Wikipedia: `<https://en.wikipedia.org/wiki/Graph_(abstract_data_type)>`__
>> | Wikipedia: `<https://en.wikipedia.org/wiki/Graph_(mathematics)>`__
>> | Wikipedia: `<https://en.wikipedia.org/wiki/Graph_theory>`__
>> | Docs: https://en.wikipedia.org/wiki/Conceptual_graph
>> | WikipediaCategory: `<https://en.wikipedia.org/wiki/Category:Graphs>`__
>> | WikipediaCategory: `<https://en.wikipedia.org/wiki/Category:Graph_data_structures>`__
>> | WikipediaCategory: `<https://en.wikipedia.org/wiki/Category:Graph_theory>`__
>>
>> 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: `<https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph>`__
>>
>> * 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 <data structures>`
>>   representatations for :ref:`graphs`.
>>
>> * There are many data serialization/marshalling
>>   formats for graphs:
>>
>>   * Graph edge lists can be stored as adjacency :ref:`matrices <matrix>`.
>>   * :ref:`NetworkX` supports a number of graph storage formats.
>>   * :ref:`RDF` is a :ref:`standard semantic web <semantic web standards>`
>>     :ref:`linked data` format for :ref:`graphs`.
>>   * :ref:`JSON-LD` is a :ref:`standard semantic web <semantic web standards>`
>>     :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 <omaha-bounces+bkealey=mail.unomaha.edu at python.org> on
>>> behalf of Jeff Hinrichs - DM&T via Omaha <omaha at python.org>
>>> 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 <omaha at python.org>
>>> 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 <adam at scha.al> 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 <omaha-bounces+bkealey=mail.unomaha.edu at python.org>
>>> on
>>> > > >> behalf
>>> > > >> > of Wes Turner via Omaha <omaha at python.org>
>>> > > >> > 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-
>>> > > >> > <https://github.com/audreyr/cookiecutter-pypackage>pypackage
>>> > > >> > <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
>>>
>>
>>
>


More information about the Omaha mailing list