Tim Metzler - Electronic Examination using Jupyter Notebook | JupyterCon 2020

Published: 03 November 2020
on channel: JupyterCon
798
4

Brief Summary
The use of Jupyter Notebook in teaching is common place, but not during exams. Exams should be constructively aligned with assignments. We tackle this problem by deploying a scalable and reconfigurable JupyterHub with nbgrader. We take into consideration the requirements for students, instructors and sysadmins and present our solutions for conducting exams for large groups of students.

Outline
We deploy JupyterHub on two different servers: a grading server that is used for managing assigments with nbgrader, serves as a NFS server for exchange and student home directories, and supports multiple classes and graders; and an exam server that runs on Kubernetes, deployed using Zero to JupyterHub (Z2JH), and is used by students during the exam. Our Kubernetes cluster runs locally on the OpenStack infrastructure of our department and is deployed using Kubespray.

Our setup comes with the following advantages:

Easy to override the default singleuser server configuration such as its image and resources without having to do helm upgrade.
We only mount the nbgrader exchange directory to the container of students who are registered for the courses.
Unlike the nbgrader inbound directory which is mounted to all users, we create a personalized inbound directory for each of the registered users. This prevents users from sharing files via the exchange directory.
It is possible to conduct multiple exams simultaneously on the same hub.
Additonally to adapting the JupyterHub for exams, we also customize the Jupyter Notebook using nbextensions. On the student side we restrict the notebook to prevent students from deleting and adding cells or notebooks. A customizable IPython kernel is used to assure students can only use specific imports. To assert that the exam has not been tampered with after submission, we generate a hashcode of the notebook and let the students sign a sheet containing the hashcode.

For grading the exams we use nbgrader. To give instructors more options for questions, we added a multiple and single choice cell. This cell is based on a markdown cell and fully integrated into nbgrader. Another feature we add is a per question grading view and a way to export grades, release feedback to and import submissions from our LMS (Ilias).

----

JupyterCon brings together data scientists, business analysts, researchers, educators, developers, core Project contributors, and tool creators for in-depth training, insightful keynotes, networking, and practical talks exploring the Project Jupyter ecosystem.

https://jupytercon.com/

JupyterCon is possible thanks to the generous support of our sponsors, and the labor of many volunteer organizers.

https://jupytercon.com/sponsors/

https://jupytercon.com/about/#Organiz...


Watch video Tim Metzler - Electronic Examination using Jupyter Notebook | JupyterCon 2020 online without registration, duration 16 minute 40 second in high quality. This video was added by user JupyterCon 03 November 2020, don't forget to share it with your friends and acquaintances, it has been viewed on our site 798 once and liked it 4 people.