Creating automatically gradable coding assignments using nbgrader#

Grading assignments can feel like a time-consuming chore. This is where automatic grading programs come in handy, although most grading solutions are constrained to a certain data format or are costly.

One free solution to this is nbgrader, a tool to tool for creating and grading assignments in Jupyter notebooks. Nbgrader allows instructors to create assignments with coding exercises, written responses, and other types of questions, but it mainly focuses on the automatic grading of programming tasks. Written or free-text responses will still have to be evaluated by hand. Nbgrader is, therefore, particularly useful for courses in statistics or data science. Unfortunately, there is also no way of integrating nbgrader into this online course structure. If you plan on using nbgrader, you’d therefore need to send out and collect the assignments from your students via e-mail, discord, etc.

For an introduction and demonstration of nbgrader’s core functionality, check out the Scipy 2017 talk by Jessica Hamrick

There are two great in-depth tutorials on how to create and grade assignments using nbgrader out there. Do check them and their philosophy out if you want to implement this approach in your work: