On this page

Web based notebooks for teaching, an experience at Universidad de Zaragoza

Web based notebooks for teaching, an experience at Universidad de Zaragoza

Web based notebooks for teaching, an experience at Universidad de Zaragoza

Miguel Angel Marco Buzunariz

Zaragoza, July 2020

How it started

  • In 2011, decided to try SageMath for teaching
  • It was hard to install, mostly on Windows
  • But had a web based interface
  • Got some funding for a server
  • Started small, but eventually more instructors decided to use it
  • Added a second server

Usual workflow

  • The instructor of each course creates a worksheet and published it
  • The students create a copy of the published sheet, work on it and share it with the instructor
  • The instructor grades and and modifies the student’s worksheet
    • Maybe add further work for the student to do
  • The student does the extra corrections requested by the instructor

Problems that appeared

  • Users had to be added manually
  • The list of worksheets became too bloated
  • Overloaded during peak times
  • Specially during exams
    • Suspect students trying to sabotage the exams
  • Stopped development, newer versions dropped it.

New design

  • We needed a new system with the following characteristics:
    1. Allow different users to log in, ideally using the university’s directory.
    2. Organize their worksheets in folders or similar.
    3. Persistent storage of the work of each user.
    4. Share worksheets with other users, at least in a similar fashion than the workflow we had in SageNB.
    5. Scalable
    6. Isolate the computations of each users, in such a way that one user cannot exhaust the available resources.
  • The most evident answer was the Jupyter ecosystem
    1. JupyterHub with CAS authenticator
    2. JupyterLab includes a file browser with drag and drop support
    3. /home shared by NFS
    4. Started to work on a JupyterLab extension for that (far from ready yet, using email/moodle for the moment)
    5. Installed several machines behind a HAProxy (thanks to BiFi)
    6. Spawner runs user’s JupyterLab instance in a systemd container

New design

In the 2019/2020 academic year, we introduced this system (together with the old one)

Advantages

  • More modern and maintained by a wide community
  • More flexible:
    • SageMath
    • Python
    • R
    • Octave
    • Maxima
    • others (Julia, Coq)

Problems detected

  • Barely enough manpower to develop and maintain it
  • Could not cope with the peak demand of RAM (maybe Jupyter’s overhead?)
  • Some students complained:
    • In general, about the availability failures
    • Engineering: “why do we have to learn yet another computing language just for math”
    • Sciences (optincs/biotech): “This is too complicated”
    • Mathematics/physics: better reception overall
  • Again, scalibility problems during the exams

During COVID-19 lockdown

  • It was a crazy time in general for everybody
  • The network services in the University were stressed to the limit
  • Most teaching methodologies and workflows had to be adapted
  • But classes using these notebooks needed very little adaptation

Ideas for the future

  • Try to get more hardware
  • Move to a new design with just one Jupyterhub instance
  • Develop a custom LXD spawner
    • Could use help with that

Conclussions

  • Jupyter based teaching has potential to be very useful
  • They can be offered as a university-wide service to the students and teachers
  • But that requires resources:
    • Hardware
    • Personnel

Personal thoughts

  • General trend to move everything to “the cloud”
  • More smartphones and tablets, less laptop/desktop computers
  • Risk of losing the control of our data, and hence, our autonomy
  • It is important to push our institutions to host their own services
    • Based on free software
    • And participate in its development

Thank you!

</body>