Having observed the ease with which computer science (CS) students with little to no experience in machine learning can start working with existing code presented through Jupyter Notebooks (JNs), together with a few colleagues I explored their use for people outside of CS. Our first experiments went well, and so I started looking for similar approaches in the literature.
In this experience report, the author discusses the use of JNs for an introductory programming class in Python, taken by a significant number of students from outside of CS. One appealing aspect of JNs is their ease of access and installation: they rely on a web browser as a primary interface, come pre-installed with the popular Anaconda Python package, and can also be hosted in a cloud-based environment (for example, Google’s Colab). The mixture of text cells and code cells lends itself to an interleaved style of learning: participants read an explanation of the concepts (possibly augmented by images or diagrams) and then try out the respective code. Budding programmers can write their own code, while less adventurous readers can simply run the provided code, observe the outcome, and possibly make modifications to the code.
While they may not be suitable for the development of complex programs, the author’s experience reflects our own: JNs are excellent tools to guide learners with limited or no coding experience through activities presented as a sequence of text and code cells in order to accomplish a computational task. As their wide acceptance in the data science and machine learning community shows, these tasks range from simple beginner exercises to highly convoluted scripts for experiments involving sophisticated machine learning libraries.