nbgrader to automate assessment and grading with JupyterHub on Azure Data Science VM

Jupyter notebook on Microsoft Data Science Virtual Machine

The Anaconda distribution on the Microsoft Data Science VM comes with a Jupyter notebook, an environment to share code and analysis. The Jupyter notebook is accessed through JupyterHub. You sign in using your local Linux user name and password.

The Jupyter notebook server has been pre-configured with Python 2, Python 3, and R kernels. There is a desktop icon named "Jupyter Notebook" to launch the browser to access the notebook server. If you are on the VM via SSH or X2Go client, you can also visit https://localhost:8000/ to access the Jupyter notebook server.

Note

Continue if you get any certificate warnings.

You can access the Jupyter notebook server from any host. Just type https://<VM DNS name or IP Address>:8000/

Note

Port 8000 is opened in the firewall by default when the VM is provisioned.

We have packaged sample notebooks--one in Python and one in R. You can see the link to the samples on the notebook home page after you authenticate to the Jupyter notebook by using your local Linux user name and password. You can create a new notebook by selecting New, and then the appropriate language kernel. If you don't see the New button, click the Jupyter icon on the top left to go to the home page of the notebook.

In the video below you can see how *nbgrader*, a tool developed by and for instructors to create and grade rich, interactive assignments in a Jupyter notebook.

creating_assignment

Standalone  Usage

On its own, nbgrader provides functionality for creating assignments and then for both automatic and manual grading of submissions via email or a VLE service

JupyterHub Usage

When combined with JupyterHub, it supports the full grading pipeline: creating assignments, releasing them to students, collecting submissions, grading, and generating personalized feedback.

To demonstrate the use of nbgrader, the following video will walk the you through the basics of the tool, and then outline two example workflows: one using standalone nbgrader, and one using nbgrader with JupyterHub. In doing so, I will illustrate to instructors how they can create their own assignments in the notebook using nbgrader.

Resources

https://kristenthyng.com/blog/2016/09/07/jupyterhub+nbgrader/ How to use JupyterHub with nbgrader

https://nbgrader.readthedocs.io/en/latest/user_guide/installation.html NBgrader Installation instructions

https://github.com/jupyter/nbgrader NBGrader on Github

https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-data-science-virtual-machine-overview Data Science VM Overview

https://developer.rackspace.com/blog/deploying-jupyterhub-for-education/ Using Jupyterhub on Docker