Investigating IPython notebook servers for teaching physics
By Janina Dewitz, on 7 October 2015
To support first and third year Physics & Astronomy undergraduates in using ipython notebooks to understand important concepts in their courses, and perform complex calculations.
IPython is an interactive version of the language python, which is used extensively throughout the world; it is also now taught to all first- and second-year students on the main stream in Physics & Astronomy. The IPython Notebook, which has evolved into the Jupyter notebook, is a web-based application that allows the user to mix code, text and visualisation. See ipython.org and jupyter.org for more information about these technologies.
One key use in supporting learning in Physics is to make lecture notes interactive: rather than having a static diagram or graph of a process, include some code to generate the graph so that the student can adjust various parameters (corresponding to physical processes) and see the results. This gives a new, intuitive understanding of complex physics problems.
The other key use envisaged was to enable complex problems in quantum mechanics to be solved numerically. Standard approaches to teaching quantum mechanics rely on analytical (pen-and-paper) solution of problems, but are limited to only a few examples which can be solved by undergraduates. The ipython notebook will allow complex, real-life problems to be tackled, again giving new, deeper insight into the subject being studied, and making the learning process active. It will also enable students to perform calculations which parallel current research.
The ELDG provided funds for a PhD student to assist the PI in creating videos covering: the installation of an ipython notebook distribution; the use of ipython; and support of students in learning ipython. Engagement of the PhD student in creation of new notebooks was a possible extension.
The PhD student produced several videos covering the installation and use of ipython on a Mac, which were embedded into the Moodle page for a first year Physics course.
The project did not excel in engaging either the PhD student or the undergraduates in using ipython notebooks. In particular, the PhD student was not engaged in undergraduate support or notebook creation. The use of notebooks in the year 2014-2015 was rather limited: in one first year course, the lecture notes were converted to ipython notebooks, while in the third year course two notebooks were produced, but there was little engagement from undergraduates.
It is clear, in retrospect, that identifying a strongly motivated and interested PhD student before starting the grant (ideally during the planning and application phase) was necessary. Planning the engagement of the student in notebook creation and the use of notebooks in the courses would have enabled significantly more progress to have been made.
Despite the relatively poor outcome of the ELDG project, there are a number of exciting developments in the exploration of ipython notebooks for teaching Physics.
- All first and second year main stream physics students now learn python (Y1) and ipython notebooks (Y2)
- A workshop was held in Week 0 of T1 this year to introduce Y3 non-main-stream students (Natural Sciences and Theoretical Physicists) to ipython notebooks which was very well attended
- A number of ipython notebooks have already been created for the Y3 quantum mechanics course (see http://nbviewer.ipython.org/github/davidbowler/PHAS3226/tree/master/ for examples) and the course is being taught with more reference to these
- A new ELDG project has been funded to create a UCL-based Jupyter hub: a central server accessible to UCL students to run ipython notebooks. This hub enables new functionality including clicker-like polls which will enhance the use of notebooks in teaching.
posted on behalf of Prof David Bowler