Hi,
Thanks for sharing your practices! My turn ...
For our 400 students introductory programming class for freshmen [1],
our students learn some terminal basics on week one (one hour). And
then we have a wrapper script that we use for a bunch of things:
info-111 jupyter notebook
info-111 fetch Week1
info-111 submit Week1
info-111 g++ ...
...
The script first switches to the appropriate conda environment.
`submit` actually calls `nbgrader` with appropriate configuration
options; `fetch` currently calls wget + unzip from a web page (the
archive comes with a git repo); I am thinking of using `nbgitpuller`
or `nbgrader fetch` instead. `g++` and `jupyter` call the eponymous
commands with some additional configuration options.
This does not seem to put off the students (but they are in maths,
physics or computer science major; your mileage may vary). I actually
find it much more robust to tell students what commands to type in a
terminal than where to click. Sort of «student reproducibility through
automation».
The inconvenient is that this deviates from standard commands; so what
they learn is less reusable in other contexts. We try to mitigate that
by not deviating too much and making sure to write in bold the actual
commands behind the scene.
The advantage is that this abstracts away the specific choices of
options. So at any point we can add more, or simply switch the
underlying implementation.
The students work either locally on the computer lab machines, or on a
JupyterHub which share the same conda environment and script (albeit
not yet the same user directories, which is a pain).
Cheers,
Nicolas
[1] sorry in French ...
http://nicolas.thiery.name/Enseignement/Info111/
https://gitlab.u-psud.fr/Info111/Info111
https://github.com/nthiery/Info111-notebooks
--
Nicolas M. Thiéry "Isil" <
nth...@users.sf.net>
http://Nicolas.Thiery.name/