Skip to main content

Interactive animations of numerical methods

Transferable competencies Digitalisation and blended learning Extended reality Educational media Computational competencies
One goal of the lecture "Introduction to Scientific Computing" is to provide some intuition on the behavior of different numerical methods, which proved to be difficult with the currently used static diagrams. In this project, interactive animations are built in Jupyter, allowing students to directly explore and compare the impact of different methods and parameters in a playful, visual way.

The project

The course «Introduction to Scientific Computing» was newly created by the applicant and held at D-BSSE for the first time in the spring semester 2021. It brings students with diverse backgrounds (primarily MSc Biotechnology and MSc Computational Biology and Bioinformatics) in first contact with the broad and complex field of scientific computation. A key learning objective is the acquisition of intuition for the behaviour of numerical methods and algorithms. Prior to this project, this was conveyed mainly through theory and diagrams. Practical experience showed however that static images are not ideally suited to allow the students to acquire this intuition. A hands-on approach in which they can try out different methods and parameters themselves would facilitate the knowledge transfer about caveats, advantages and disadvantages associated with numerical simulations. The theoretical lectures are closely accompanied by practical programming exercises, but these can only cover a fraction of the methods, effects and examples discussed in the lectures due to time constraints. To allow the students to reach the learning objectives more effectively, the static diagrams were to be complemented or replaced by interactive elements in this project. In these, the students would be able to observe and experience the discussed phenomena through own experimentation with the methods and parameters, without having to invest time to implement them themselves. Since many students already bring in some preexposure to Python programming and Jupyter notebooks when entering the course, and since the LET of ETH Zurich readily provides a JupyterHub environment embedded in Moodle, JupyterHub was the ideal platform to implement the project. The interactive elements were to be developed by a part-time teaching assistant under the supervision of the project leader.

In the planning phase of the course in 2021, the applicant completed the LET course «Foundations of Teaching and Learning», in which the use of interactive learning elements was encouraged. A large part of the motivation for this project emerged from this course.

Specific project goals:

Phase I (2023):

1. Development of five prototypes of interactive animations in Jupyter, based on existing static display items from the course material
2. Hosting of the prototypes on JupyterHub and embedding into the lecture of FS 2023

Phase II (2024):

3. Development of a final, improved version of each prototype based on feedback collected from students during FS 2023
4. Hosting of the final interactive animations on JupyterHub and embedding into the lecture of FS 2024

Implementation into teaching practice

A teaching assistant (TA) was employed from early 2023 until summer 2023, covering the entire spring semester and leaving some time for improvements and extensions afterwards. Before the semester started, LET set up the JupyterHub platform and embedded it on the Moodle course page, while the applicant established a git repository for the code. These technical installments required only minimal effort thanks to the support by LET. Additional support was required only once later in the semester to increase the technical specs of JupyterHub, which went flawlessly.

At the beginning of FS 2023, a brief introduction into JupyterHub was given to the students that revealed that most were already familiar with it. During the semester, the TA independently developed the previously agreed-upon prototypes, and they were continuously included in the course. In the lectures, they were then opened from links to Moodle/JupyterHub embedded in the lecture slides for live demonstration. This ensured that they were not missed during the lecture and enabled the students to access them directly from the lecture material during self-study. The lecture slides were updated and published on Moodle every week.

In the middle of the semester and at its end, oral student feedback was collected and passed on to the TA. The Python prototypes were highly appreciated by the students, and they expressed a demand for more than had been developed so far. The end of project phase I was therefore used to add more animation prototypes. Furthermore, two tutorials were developed that demonstrate animated plotting, as well as standard solutions to all six programming exercises in Python (instead of in Matlab or C++ as partially done before), both following the express desire by the students.

Phase II began in early 2024 with the employment of a successor TA. Like in phase I, the employment lasted until shortly after the spring semester. It was specifically planned to let a third person improve the quality of the Jupyter notebooks where needed, and to bring in new ideas for additional elements. LET opened a new JupyterHub and linked it in Moodle, while the project leader created a copy of the git repository. The fact that a new installment of JupyterHub needs to be done manually for each new semester is a small disadvantage of the current technical solution but comes with only minor extra work.

The project ended according to plan after FS 2024 in June.

Lessons learned and further impacts

19 interactive animations, 2 tutorials and 6 exercise solutions were developed in this project and are available to the students during the semester. The interactive animations are documented and illustrated in the appendix. The planned number of 5 elements was thus far exceeded, thanks to the dedicated effort of the two involved TAs.

The main insight gained during the project is the clear positive student feedback that confirmed the learning benefit. The students explicitly expressed an interest in an even higher number of Jupyter examples in the feedback collected during phase I. Thanks to the project timeline across two years, this demand could be met in phase II. A further insight is the low effort required to include Jupyter in a theoretical lecture, facilitated by LET support that minimises the technical overhead for lecturers.

Since a part of the interactive elements were developed only during FS 2024 for which exams were not yet conducted, the project’s impact on student learning cannot be conclusively determined yet. What could be recognised, however, was a clear increase in Python programming skills among the students from FS 2023 (phase I) to FS 2024 (phase II). Although this impression is based on the lecturer’s subjective impression from student exercise presentations, a direct positive effect of access to programming examples and tutorials suggests itself.

The methodology implemented in this project can be scaled to large student numbers. The interactive elements were designed for self-study after the lecture, which means that they remain accessible to the students online at any time and are not restricted by student numbers. Developmental and maintenance effort needs to be spent only once for all students. The only possible limitation appears to be the JupyterHub server capacity provided by LET, which may need to be scaled to accommodate larger student numbers concurrently. With about 40 enrolled students in FS 2024, this was not a problem during this project.

Opportunities for dissemination of the concept to other members of the teaching staff at D-BSSE are currently being assessed.

Links and downloads

Authors

  • Roman Vetter

    Lecturer, main applicant

    ETH Zürich

    Kontaktieren