[Python-ideas] Framework for Python for CS101
Wes Turner
wes.turner at gmail.com
Mon May 25 20:17:32 CEST 2015
On Mon, May 25, 2015 at 12:06 AM, Rustom Mody <rustompmody at gmail.com> wrote:
> Context: A bunch of my students will be working with me (if all goes
> according to plan!!)to hack on/in CPython sources.
>
> One of the things we would like to try is a framework for CS101 [Intro to
> programming]
>
You said framework, and I thought 'web framework' and 'testing':
* Bottle is great; simple; single file; and WSGI-compatible
* TDD! from the start!
https://westurner.org/wiki/awesome-python-testing#web-frameworks
>
> So for example beginners get knocked out by None 'disappearing' from the
> prompt
> Correctable by
>
> >>> import sys
> >>> sys.displayhook = print
>
> Now of course one can say: "If you want that behavior, set it as you
> choose"
> However at the stage that beginners are knocked down by such, setting up a
> pythonstartup file is a little premature.
>
> So the idea (inspired by Scheme's racket) is to have a sequence of
> 'teachpacks'.
> They are like concentric rings, the innermost one being the noob ring, the
> outermost one being standard python.
>
In terms of a curricula graph, are they flat or nested dependencies?
>
> Now note that while the larger changes would in general be restrictions,
> ie subsetting standard python, they may not be easily settable in
> PYTHONSTARTUP.
> eg sorted function and sort method confusion
> extend/append/etc mutable methods vs immutable '+'
>
I add tab-completion in ~/.pythonrc (and little more; so that my scripts
work without trying to remember imports etc) (see:
gh:westurner/dotfiles/etc/.pythonrc; symlinked in by
gh:westurner/dotfiles/scripts/bootstrap_dotfiles.sh).
dotfiles.venv.ipython_config.py (and conda) make navigating VIRTUAL_ENVs
(that are/can be isolated from concurrent changes in system packages)
easier for me.
Depending on your setup, managing that many envs is probably easier with
conda and/or Docker.
* https://github.com/ipython/ipython/wiki/Install:-Docker
> Now different teachers may like to navigate the world of python
> differently.
> So for example I prefer to start with the immutable (functional) subset
> and go on to the stateful/imperative. The point (here) is not so much
> which is preferable so much as this that a given teacher should have the
> freedom to chart out a course through python in which (s)he can cross out
> certain features at certain points for students. So a teacher preferring
> to emphasise OO/imperative over functional may prefer the opposite choice.
>
* https://www.reddit.com/r/learnpython/wiki
* https://www.reddit.com/r/learnpython/wiki/books
* https://github.com/scipy-lectures/scipy-lecture-notes (Sphinx)
*
https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks
* https://github.com/jrjohansson/scientific-python-lectures/ (IPython)
There was also talk of generating EdX courses from IPython notebooks over
on ipython-dev:
http://mail.scipy.org/pipermail/ipython-dev/2015-February/015911.html
> [Aside: ACM curriculum 2013 juxtaposes OO and FP as absolute basic in
> core CS
> https://www.acm.org/education/CS2013-final-report.pdf
> pgs 157,158
> ]
>
> So the idea is to make a framework for teachers to easily configure and
> select teachpacks to their taste.
>
> How does that sound?
>
> Rusi
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150525/66565c9a/attachment.html>
More information about the Python-ideas
mailing list