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


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.