<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div></div>Context:  A bunch of my students will be working with me (if all goes according to plan!!)to hack on/in CPython sources. <br></div><br></div>One of the things we would like to try is a framework for CS101 [Intro to programming]<br><br></div>So for example beginners get knocked out by None 'disappearing' from the prompt<br></div>Correctable by<br><br>>>> import sys
<br>>>> sys.displayhook = print
<br><br></div>Now of course one can say: "If you want that behavior, set it as you choose"<br></div>However at the stage that beginners are knocked down by such, setting up a pythonstartup file is a little premature.<br><br></div>So the idea (inspired by Scheme's racket) is to have a sequence of 'teachpacks'.<br></div>They are like concentric rings, the innermost one being the noob ring, the outermost one being standard python.<br><br></div>Now note that while the larger changes would in general be restrictions, ie subsetting standard python, they may not be easily settable in PYTHONSTARTUP.<br></div>eg sorted function and sort method confusion<br></div>extend/append/etc mutable methods vs immutable '+'<br><br></div>Now different teachers may like to navigate the world of python differently.<br></div>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.<br><br></div><div>[Aside:  ACM curriculum 2013 juxtaposes OO and FP as absolute basic in core CS <br><a href="https://www.acm.org/education/CS2013-final-report.pdf">https://www.acm.org/education/CS2013-final-report.pdf</a><br></div><div>pgs 157,158<br></div><div>]<br><br></div>So the idea is to make a framework for teachers to easily configure and select teachpacks to their taste.<br><br></div>How does that sound?<br><br></div>Rusi<br></div>