Installing Jupyter and Openning Jupyter Notebooks
Opened this issue · 8 comments
Having taught a few Introduction to Python Programming courses (at the NIH) utilizing the Jupyter Notebook I have encountered issues with installing and especially with starting up Jupyter notebooks. This makes me think of a few points that I think we may want to address:
-
The double cognitive load of learning the Jupyter ecosystem AND a new programming language, etc:
I usually begin the course by describing the multiple ways to run a python program as 1) from the interpreter, 2) using a source code file and running it through the interpreter, 3) using the Jupyter Notebook, and 4) using a python IDE such as PyCharm. Students have some difficulty understanding the concept that the Jupyter Notebook cell is similar to a source code file. When I was taking the SWC Trainer for Trainers and asked Greg about this he mentioned that trying to learn Jupyter AND a programming language presents a double cognitive load to the students. -
Secondly, part of the challenge with the Jupyter Notebook is that one cannot double click a notebook to open it. With exceptions fort the nbopen (https://github.com/takluyver/nbopen), Pineapple (https://nwhitehead.github.io/pineapple/) and nteract projects (https://github.com/nteract/nteract).
-
Finally, the fact that the terminal window has to be kept open when using the Notebook. Many students would close it and no understand why their notebook was no longer working.
I am sure I am preaching to the choir here but I thought it was worth mentioning these points. Please let me know if it would be preferred to break these out into separate issues.
I was thinking about this a little bit, with respect to defining the target audience. Is the target audience novices or people with some python programming experience who want to know how to do it better?
Is the target audience novices or people with some python programming experience who want to know how to do it better?
Great question. In principle Data Carpentry (of which the Reproducible Research Curriculum is now a part) aims for zero-entry. However, the Rmarkdown-version of the curriculum did assume at least some very basic familiarity with R. I think that still qualifies as novice. Is there something like an experienced novice 😏
i agree that there is a heavier cognitive load with respect to installing & using python / notebooks, etc. Software carpentry does it successfully and the last workshop i taught (which was a while back) went ok BUT it's more challenging than installing rstudio / r and i've seen workshops where it did not go ok. SO... i like the idea of an experienced novice. but more handholding may be required for the early on lessons even for the experienced novice. :)
To be clear, I love working with Jupyter notebooks and I really like the idea of forming a reproducible science curriculum around them. I mention the issues above so we can hopefully address them as we go. :-)
I've experience with three routes to getting novices started via MOOCs and undergrad/distance ed teaching, and also trying to get a Jupyter environment up and running in a data hack event:
- get them to install Anaconda: can cause issues for learners who've never installed anything other than an app on their phone... filepath issues often one problem;
- use SageMathCloud: we've recommended this but I haven't had survey feedback etc about how well it worked; anecdotally seems fine;
- use a custom VM: we distributed a custom Virtualbox VM to distance ed students on a VM, fired up using vagrant; running the VM (networking issues) not as smooth as we hoped in some cases.
Running notebooks in a docker container via Kitematic is very attractive I think; also things like nteract, although this requires an IPython installation at the moment? Producing a Raspberry Pi SD card image preloaded with Jupyter et al. with the notebook server set to free run on a known port is another possible approach for workshops?
I think the ability to link notebooks to other applications, such as databases, is relevant - I'll raise another issue for this.
+1 for Anaconda. I've not seen many filepath issues (well not beyond the usual for "for learners who've never installed anything other than an app on their phone" like @psychemedia )
Also +1 on Anaconda. It's generally been successful for SWC and they have good install instructions
There are always some issues with people coming without things installed or with laptops that they can't install things on, and that's something we have yet to solve. If there are ideas on backup plans or encouraging installation, those would be great.
The backup plan idea is also related to #13 and what places can do where they can't do installation.