The Jupyter Notebook (formerly IPython Notebook) has been used to support learning in different scenarios, including taught courses, self-directed learning and reference material such as software documentation. People have used it to learn how to program, and to learn about diverse subjects where computer code is important to human understanding. The aim of this talk is to dive into where and how notebooks can be used most effectively for education.
I will first describe notebook-based learning material created by a variety of people for different purposes, deliberately taking a broad definition of ‘education’, along with my own experiences using notebooks to teach Software Carpentry sessions and conference tutorials. I’ll pull out both strengths and limitations of notebooks as an educational tool to explore how they can be used most effectively.
In the second part of the talk, I’ll talk about several extra software tools which can make the notebook more valuable in educational settings, including Jupyterhub, with which a teacher can provide notebook servers for a group of students, nbgrader, which allows notebooks to be used as assignments, and cite2c, which can insert academic citations into notebooks. I’ll also touch on commercial offerings integrating the notebook, such as SageMathCloud.