<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>On May 24, 2015, at 22:06, Rustom Mody <<a href="mailto:rustompmody@gmail.com">rustompmody@gmail.com</a>> wrote:</div><div><br></div><blockquote type="cite"><div><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></div></div></div></div></div></div></div></div></div></div></blockquote><div><br></div>How exactly does this work? Is it basically just a custom pythonstartup file that teachers can give to their students? Maybe with some menu- or wizard-based configuration to help create the file? <span style="background-color: rgba(255, 255, 255, 0);">Or is this some different mechanism? If so, what does setting it up, and distributing it to students, look like?</span><div><br></div><div>I realize that below you talk about doing things that are currently not easy to do in a pythonstartup, like hiding all mutating sequence methods, but presumably the patches to the interpreter core would be something like adding hide_mutating_sequence_methods() and similar functions that teachers could then choose to include in the pythonstartup file or whatever they give out.</div><div><br><div><blockquote type="cite"><div><div dir="ltr"><div><div><div><div><div><div><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>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Python-ideas mailing list</span><br><span><a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a></span><br><span><a href="https://mail.python.org/mailman/listinfo/python-ideas">https://mail.python.org/mailman/listinfo/python-ideas</a></span><br><span>Code of Conduct: <a href="http://python.org/psf/codeofconduct/">http://python.org/psf/codeofconduct/</a></span></div></blockquote></div></div></body></html>