<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 26, 2015 at 1:19 PM, Wes Turner <span dir="ltr"><<a href="mailto:wes.turner@gmail.com" target="_blank">wes.turner@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Ways to teach Python from first principles:</div><div><br></div>* Restrict the syntactical token list ("switch features on and off")<div>  * Fork Python</div><div>  * RPython -- <a href="https://rpython.readthedocs.org/en/latest/" target="_blank">https://rpython.readthedocs.org/en/latest/</a> </div></div></blockquote><div><br></div><div>RPython -> PyPy: <a href="https://bitbucket.org/pypy/pypy">https://bitbucket.org/pypy/pypy</a></div><div><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;line-height:20px">PyPy is both an implementation of the Python programming language, and an extensive compiler framework for dynamic language implementations. You can build self-contained Python implementations which execute independently from CPython.</span></blockquote></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>  * <a href="https://pypi.python.org/pypi/RestrictedPython" target="_blank">https://pypi.python.org/pypi/RestrictedPython</a></div><div>  * <a href="http://pyvideo.org/video/2585/building-and-breaking-a-python-sandbox" target="_blank">http://pyvideo.org/video/2585/building-and-breaking-a-python-sandbox</a></div><div>  * OR: execute code in container (e.g. LXC, LXD, Docker (JupyterHub); virtualization)</div><div><br></div><div>* Add a preprocessor with a cost function to limit valid tokens for a given code submission</div><div>  (see the links to the Python grammar, tokenizer, compiler linked above)</div><div><br></div><div>* Modify nbgrader to evaluate submissions with such a cost function:</div><div>  <a href="https://github.com/jupyter/nbgrader" target="_blank">https://github.com/jupyter/nbgrader</a></div><div><br></div><div>* Receive feedback about code syntax and tests from a CI system with repository commit (web)hooks</div><div>  * BuildBot, Jenkins, Travis CI, xUnit XML</div><div>    <a href="https://westurner.org/wiki/awesome-python-testing#continuous-integration-ci-and-continuous-delivery-cd" target="_blank">https://westurner.org/wiki/awesome-python-testing#continuous-integration-ci-and-continuous-delivery-cd</a></div><div><br></div><div><br></div></div><div class=""><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 26, 2015 at 1:56 AM, Andrew Barnert via Python-ideas <span dir="ltr"><<a href="mailto:python-ideas@python.org" target="_blank">python-ideas@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>On May 25, 2015, at 22:36, Rustom Mody <<a href="mailto:rustompmody@gmail.com" target="_blank">rustompmody@gmail.com</a>> wrote:<br>
><br>
> I am talking of a framework for a teacher to chart a course through python, not any changes per se to python itself.<br>
<br>
</span>How exactly can you allow a teacher to "chart a course through python" that includes separate function and generator function definition statements, procedures as distinct from functions, etc. without changing Python? Python doesn't have the configurability to switch those features on and off, and also doesn't have the features to switch on in the first place.<br>
<span><br>
> A teacher wanting to chart a different course through python should be free (and encouraged) to do that as well.<br>
<br>
<br>
</span>I would like a framework for a teacher to chart a course through driving the Nissan 370Z that would allow me to start off teaching hoverpads instead of wheels, but a teacher wanting to chart a different course should be free to start with sails instead. And I want to do this without changing anything about the 370Z.<br>
<div><div><br>
<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>