Many courses in scientific fields require students not just to write code, but to also visualize their data, work through a mathematical derivation, or write a paragraph interpreting their results. The Jupyter notebook (formerly known as the IPython notebook) is an ideal platform for creating assignments that include all of these question types, due to its interactive document format that weaves together code, prose, images, and math. Instructors can provide students with self-contained notebooks that include instructions, coding exercises, and written responses all in the same place. Students can write and execute code in these notebooks, and any text or images produced by the code are displayed immediately beneath the input that produced them. However, while having all exercises in the same place makes for better assignments, it also makes them difficult to grade. This demo presents nbgrader, an open-source tool developed by the Jupyter project that solves this problem by providing an interface that blends the autograding of notebook-based assignments with manual human grading. Additionally, nbgrader streamlines the process of assignment creation, distribution, collection, grading, and feedback-a process that is often logistically difficult for instructors. To give students access to the notebook, this demo illustrates how it can be deployed in the cloud, and how this complements the grading process. Information about the Jupyter notebook can be found at http://jupyter.org/, and a demo of the notebook at https://try.jupyter.org/. Information about nbgrader can be found at https://github.com/jupyter/nbgrader. A laptop is recommended for this demo. Handouts will be provided.
['Jessica B. Hamrick']
Creating and Grading IPython/Jupyter Notebook Assignments with NbGrader