Here's the list of cookiecutters:
https://cookiecutter.readthedocs.io/en/latest/README.html#a-pantry-full-of-cookiecutters
https://github.com/cookiecutter/cookiecutter#a-pantry-full-of-cookiecutters

One great thing about starting with a cookiecutter is you don't need to
understand how it all works;
`make test` just works, you can configure CI (with e.g. .travis.yml and
tox.ini) and it just works.

It should be pretty easy to create a cookiecutter (or just add a
conditional to the pypackage template) that's setup for GitHub Actions:
https://help.github.com/en/actions

GitHub Classroom builds upon the Pull Request workflow and GitHub Actions
CI (Continuous Integration)
https://classroom.github.com/classrooms

In lieu of explaning how to configure jupytext so that pull request diffs
of notebook.py files are more readable than the notebook.ipynb JSON,
https://jupyterhub.github.io/nbgitpuller/ is ~free, nbgrader is ~free,
CoCalc Courses includes nbgrader and is free
https://cocalc.com/doc/teaching.html

https://cocalc.com/doc/compare.html

On Fri, Apr 10, 2020 at 6:34 PM Wes Turner <wes.tur...@gmail.com> wrote:

> That link to GitHub Learning Lab should be: https://lab.github.com/
> - https://lab.github.com/githubtraining/introduction-to-github (57m)
> -
> https://lab.github.com/githubtraining/github-actions:-continuous-integration
> (171m)
> -
> https://lab.github.com/githubtraining/continuous-integration-with-travis-ci
> (79m)
>   - You can generate a whole project skeleton with CI, tests, and all in
> like 2 minutes:
>     pip install cookiecutter
>     cookiecutter https://github.com/audreyr/cookiecutter-pypackage
>     cookiecutter gh:audreyr/cookiecutter-pypackage
>     cookiecutter https://github.com/drivendata/cookiecutter-data-science
> - https://lab.github.com/githubtraining/create-a-release-based-workflow
> (90m)
>
> On Fri, Apr 10, 2020 at 5:52 PM Wes Turner <wes.tur...@gmail.com> wrote:
>
>>
>>
>> On Fri, Apr 10, 2020 at 4:40 PM kirby urner <kirby.ur...@gmail.com>
>> wrote:
>>
>>>
>>> Thank you very much for the pull requests Wes!  I got notification by
>>> email.
>>>
>>> They may be against a version that no longer exists, but no matter.
>>> We're gonna poke around live on camera, starting in about 30 minutes. We go
>>> for 2.25 hours with one or two breaks.
>>>
>>
>> Cool. Good timing
>>
>>
>>>
>>> I'm taking my campers right into my mailbox and showing through Github
>>> how it all might work, even if I don't actually make it work.
>>>
>>> I've got the Daniel Shiffman "Git for Poets" playlist queued up through
>>> [the main Notebook](
>>> https://github.com/4dsolutions/python_camp/blob/master/PyCampNextLevel.ipynb
>>> ).
>>>
>>> Providing opportunities to soak up knowledge about Git and Github has
>>> been a primary focus of this camp.
>>>
>>
>> GitHub has resources for learning Git and GitHub:
>> https://try.github.io/
>> https://lab.github.io/
>>
>> I can't recommend Learn Git Branching enough:
>> https://learngitbranching.js.org/
>>
>>
>>>
>>> My two cohorts so far have differed quite a bit in character.
>>>
>>> The first group featured teens eager to dive into deep topics, per the
>>> camp blurb, and got antsy when I didn't talk machine learning right away.
>>> This might be too much a camp for noobs.  I didn't have the Jupyter
>>> Notebook four day outline yet.  They're nervousness is partly what drove me
>>> to get it out there, reassure them our content would match the camp
>>> description.
>>>
>>
>> https://jakevdp.github.io/PythonDataScienceHandbook/
>> https://github.com/jakevdp/PythonDataScienceHandbook
>> - Launch in Binder, Colab links
>>
>>
>>>
>>> The second group is younger, considers itself adept and into
>>> programming, yet is patiently learning a lot of core Python.  One camper
>>> had worked with his dad on solving that "1/3 --> float" problem.  I
>>> incorporated their code verbatim as a part of our shared process.
>>>
>>
>> IMHO, your strategy for finding answers to questions is maybe the most
>> important aspect of learning to code:
>>
>> - find the docs and bookmark them
>> - find the source and bookmark it
>> - list every possible word for the thing you're describing
>> - try adding "double quotes" around certain terms and error messages
>> - exclude with minus: -"this or that"
>>
>> ### Mailing Lists
>> - Google search with "site:mail.python.org" and/or "inurl:" queries
>>   https://www.google.com/search?q=site%3Amail.python.org
>>   (inurl doesn't match mm3-migrated lists too)
>> - Google Groups, if the list is set up there too
>> - Gmail "list:python.org" queries
>>   - This doesn't find messages that you didn't receive because you
>> weren't subscribed yet.
>> - Gmail "from:l...@mail.python.org" queries
>>   - This doesn't find messages that you didn't receive because you
>> weren't subscribed yet.
>> - Markmai:l "list:org.python.edu-sig" queries
>>   https://markmail.org/search/?q=list%3Aorg.python
>>   https://markmail.org/search/?q=list%3Aorg.python.edu-sig
>>
>> [1] "[Edu-sig] Learning Code IRC for kids?"
>> [2] "REQ: HOWTO mailing lists resources"
>>
>>
>>>
>>> I've never shared about the construct manager construct with like middle
>>> schoolers before, however that's a big part of the plan for today. I
>>> [showcase that construct](
>>> https://github.com/4dsolutions/python_camp/blob/master/ContextManager.ipynb)
>>>  for
>>> connecting to / working with / disconnecting from databases (in our case
>>> sqlite3 databases).  I tell them they're previewing the high school of
>>> tomorrow.
>>>
>>
>> Is this how context managers work?
>>
>> ```python
>> class MyManager:
>>     def __enter__(*args, **kwargs):
>>         print("entering")
>>         print((args, kwargs))
>>
>>    def __exit__(*args, **kwargs):
>>         print("exiting")
>>
>>    def hello(*args, **kwargs):
>>        print("hello")
>>
>> with MyManager(1, two="three") as mgr:
>>     mgr.hello()
>> ```
>>
>> https://www.google.com/search?client=firefox-b-1-d&q=site%3Adocs.python.org+context+manager
>> -
>> https://docs.python.org/3/reference/datamodel.html#with-statement-context-managers
>>
>> Can't remember whether args go to __init__ to __enter__
>>
>>
>>>
>>> The School of Tomorrow is a neighboring repo, and crosslinks
>>> (hyperlinks) between that, and this camp, have already appeared.
>>>
>>> My recommendation to campers starting from day one is they:
>>>
>>> (a) install git locally
>>> (b) git clone the camp repo
>>> (c) create a Github account
>>> (d) fork the camp repo
>>> (e) git clone the forked camp repo
>>>
>>> Then they should treat the (b) structure as something to keep updating
>>> with git pull.  Treat my version of the repo as read-only.
>>>
>>
>> So you have two working directories; instead of one working directory
>> with multiple remotes (git remote -v)
>>
>> In my .gitconfig, I have an `r` alias, so I can just type `git r` and it
>> runs `git remote -v`:
>> https://github.com/westurner/dotfiles/blob/master/etc/.gitconfig
>>
>>
>>>
>>> However, they can modify and elaborate on their own version of the
>>> forked repo (e), and push changes at will. Harvest ideas from my updates
>>> for their own works in progress. Share links to their own repos through
>>> Zoom chat.
>>>
>>
>> Do you give feedback with pull requests?
>> AFAIU, GitHub Classroom improves the PR for feedback workflow
>> tremendously.
>>
>>
>>>
>>> My schedule is such that I'm expected on more week of piloting this
>>> curriculum, then shelving it to work on something more data science
>>> oriented, returning to the kid camp scene in early June.  I'll be looking
>>> for ideas on how a strong data science course should go, assuming beginners
>>> but with some Python experience.  Obviously we'll be using numpy,
>>> matplotlib, sklearn and like that.
>>>
>>
>> https://github.com/trending/jupyter-notebook
>>
>> My notes w/ links and resources for data science:
>> https://wrdrd.github.io/docs/consulting/data-science#
>>
>>
>>>
>>> Kirby
>>>
>>>
>>> _______________________________________________
>>> Edu-sig mailing list -- edu-sig@python.org
>>> To unsubscribe send an email to edu-sig-le...@python.org
>>> https://mail.python.org/mailman3/lists/edu-sig.python.org/
>>>
>>
_______________________________________________
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/

Reply via email to