Using Python Jupyter Notebooks + nbgrader as a Homework System

In my Applied Linear Algebra course, taken by MS Data Science students, homework was administered exclusively through Jupyter notebooks.

Students solved problems including proofs (answered in markdown cells using LaTeX syntax), multiple choice (using code hacks to facilitate autograding), and math-related coding questions, using Python and its numpy package.

The coding questions could either be autograded or graded manually.

In this talk, I will demo the nbgrader package for creating and grading Jupyter notebook assignments, and briefly discuss what I liked and didn’t like about this system.