Streamlining Coding Assignments and Grading on the Cloud: A Preconfigured JupyterHub Image for Chemistry Education

13 March 2025, Version 1
This content is a preprint and has not undergone peer review at the time of posting.

Abstract

Integrating coding skills into chemistry education is crucial for preparing students to meet the demands of modern research. However, the technical challenges associated with installing computational tools often discourage chemistry educators from incorporating programming exercises into their courses. To tackle these challenges, we developed a preconfigured image on Jetstream 2, a cloud computing environment using OpenStack infrastructure. This image, shared with the community, allows chemistry instructors to effortlessly deploy a JupyterHub platform for their classrooms, facilitating the teaching of programming skills. Integrated with the automatic grading package nbgrader, the JupyterHub website created from this image enables seamless assignment creation, distribution, and automatic grading on a cloud-based platform. Students can access assignments directly through their web browsers without the need to install software or configure their local machines. This tool empowers educators to equip future scientists with essential coding skills, enabling them to tackle interdisciplinary challenges and drive chemical discoveries forward.

Keywords

Upper-Division Undergraduate
Graduate Education
Physical Chemistry
Computer-Based Learning
Assessment
Theoretical Chemistry

Supplementary materials

Title
Description
Actions
Title
Supplemental Information: Course Example
Description
An example course assignment on harmonic oscillator created for the nbgrader-JupyterHub platform, with the instructor-version Jupyter notebook, student-version Jupyter notebook, and the automatically generated feedback web page.
Actions
Title
Supplemental Information: Visual Instructions
Description
Step-by-step directions on creating a secure instance of JupyterHub on the Jetstream 2 platform; Instructions on accessing the JupyterHub through the website; Setup guide for nbgrader in the JupyterHub; Directions for removing mockinstructor account and restarting the server to complete the JupyterHub setup; Formgrader interface introduction; Demonstrations of the various cell types in an instructor’s Jupyter notebook in nbgrader; Visual tutorial on accessing assignments and setting up automatic grading in nbgrader.
Actions

Comments

Comments are not moderated before they are posted, but they can be removed by the site moderators if they are found to be in contravention of our Commenting Policy [opens in a new tab] - please read this policy before you post. Comments should be used for scholarly discussion of the content in question. You can find more information about how to use the commenting feature here [opens in a new tab] .
This site is protected by reCAPTCHA and the Google Privacy Policy [opens in a new tab] and Terms of Service [opens in a new tab] apply.