[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