<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Sep 20, 2016 at 2:34 AM Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Sep 20, 2016 at 9:20 AM, Stephen J. Turnbull<br>
<<a href="mailto:turnbull.stephen.fw@u.tsukuba.ac.jp" target="_blank">turnbull.stephen.fw@u.tsukuba.ac.jp</a>> wrote:<br>
> אלעזר writes:<br>
><br>
>  > Another use case, though I admit not the top priority of anyone here, is<br>
>  > that of assignment checkers. In most courses I took at the university, the<br>
>  > person who checks the assignments says something like "you are allowed to<br>
>  > use only this this and this libraries", in order not to mess with unknown<br>
>  > dependencies from tens of students (I am talking about advanced courses,<br>
>  > where the method I use to solve the problem is unimportant or only requires<br>
>  > explanation). With this statement they can simply state "you can import<br>
>  > pip".<br>
It's more than that, though. When a student is given an assignment,<br>
it's usually to help said student to learn to *write code*, not to<br>
learn how to walk into the plumbing store of PyPI and look for<br>
something that approximates to the job being done. Maybe it's<br>
different at university, but with my students, it's always been "no<br>
external libraries" (and in some cases, a common-sense avoidance of<br>
obvious solutions from the standard library - if you teach someone how<br>
to implement a sort and the response is simply "lst.sort()", it's not<br>
exactly implementing anything). So the use-case for this isn't nearly<br>
as big as it might be. By the time you get to writing large<br>
applications (again, taking it from my students' work: a Flask-based<br>
web app), it's not illogical to have a requirements.txt and standard<br>
pip incantations.<br>
<br>
ChrisA<br></blockquote><div><br></div><div>I was talking specifically about advanced courses, in which an assignment is "implement a side-channel attack using data" and you can use whatever library you like.</div><div><br></div><div>Elazar</div></div></div>