Computer Scientist - DevOps at EPFL (École polytechnique fédérale de Lausanne)
In charge of the JupyterHub / JupyterLab service (technical)
In 2018, the Ecole polytechnique fédérale de Lausanne (EPFL, Switzerland), embarked on a major curriculum reform to introduce computational thinking across its science and engineering programs.
Thanks to their multi-representational nature combining interactive code ("computational") and rich text ("thinking"), Jupyter notebooks have been identified as a key enabling technology for this project.
The Center for Digital Education of EPFL has therefore created, in September 2019, a centralized service to support teachers in the development and use of Jupyter notebooks for their classes and Massive Open Online Courses (MOOCs).
This service consists of a technical infrastructure in the form of a centralized JupyterLab platform, a technical support component and pedagogical support component.
In this talk, we will present how we have developed this service and share our experience both in terms of challenges encountered and solutions implemented.
We hope to provide useful insights to teachers and institutions interested in deploying Jupyter notebooks for education at scale.
Centralized JupyterLab platform
The centralized JupyterLab platform has proved to play a pivotal role in the transformation of our teachers’ practices.
By making it easy for anyone to use and produce notebooks directly in their browser without any installation, it has simplified drastically the class logistics and has attracted more and more users over the years.
Since 2019, more than 9600 unique users have used our centralized JupyterLab platform, and 3500 users are active all year round.
During the autumn semester 2022-2023, we have had an average of 350 daily users on the platform.
Dealing with user surges at the beginning of classes and with increasing numbers of concurrent users, and managing shared resources while allowing non-trivial types of use (e.g. machine learning) are typical examples of challenges we have faced.
Beyond answering requests from teachers, an important role of our technical support has been to adapt the service to the pedagogical needs associated with teaching computational thinking in a science and engineering context.
Because the practice of computational thinking takes various forms in various fields, our technical support has evaluated and installed a range of different types of software stacks and libraries.
For instance, we have installed specific kernels for simulations in computational chemistry or for polyglot notebooks in image processing (the Script of Script kernel). Our computational neuroscience MOOCs use a separate instance of JupyterLab with a specific software stack and a LTI front-end (Learning Tools Interoperability) to accommodate users that are external to our institution.
Using notebooks for educational purposes also involves operations that are specific to education such as managing assignments.
Most institutions use learning management systems such as moodle for these tasks, but these don’t necessarily interface with JupyterLab beyond file upload/download. We have developed a moodle plugin that interfaces with a JupyterHub installation, making the whole notebook assignment workflow easier from the assignment creation to the transmission of notebook-based feedback to students.
Because the range of possible pedagogical patterns for Jupyter notebooks is wide (see “Teaching and Learning with Jupyter”), a first challenge for us has been to help teachers choose ways to use notebooks that are likely to help students develop the targeted knowledge and skills.
Using results from research in different domains of learning sciences, we have experimented and developed best practices for teachers to optimize the design of their notebooks in five scenarios: virtual demonstrations, interactive textbooks, exercise worksheets, labs and projects, and graded assignments.
This work has resulted in the development of several training workshops for teachers as well as a complete website including teacher interviews: https://go.epfl.ch/notebooks.
Of course, developing notebooks for a course requires a significant investment in time and resources for teachers. We accompany them with both funding and advice for developing their projects.
Finally, to foster networking and exchanges, we invite teachers to share how they use notebooks in their classes or MOOCs in bi-annual community events.
We will present examples of notebooks from the 27 git repositories we have documented so far.