Skip to content
Snippets Groups Projects
Oksana Riba Grognuz's avatar
ed8efb60

autograde

autograde is a toolbox for testing Jupyter notebooks. Autograde executed of notebooks with consecutive unit testing of the final notebook state and allows refining results (e.g. grading plots by hand) in the audit mode. Autograde summarizes results in human and machine-readable formats. https://github.com/cssh-rwth/autograde

Demo

We have included autograde to this envirnment by adding a line jupyter-autograde==0.2.13 to requirements.txt file. Let's evaluate how it automates grading using the example files provided by autograde in the demo/ subdirectory.

Grade

To grade demo/notebook.ipynb we run autograde test against test scenarios specified in demo/test.py using context files stored in demo/context

autograde test demo/test.py demo/notebook.ipynb --target /grading --context demo/context
  • demo/test.py contains test cases we want to apply
  • demo/notebook.ipynb is the a notebook to be tested (here you may also specify a directory to be recursively searched for notebooks)
  • The optional flag --target tells autograde where to store results, /tmp in our case, and the current working directory by default.
  • The optional flag --context specifies a directory that is mounted into the sandbox and may contain arbitrary files or subdirectories. This is useful when the notebook expects some external files to be present such as data sets.

This command generates a compressed archive named results_[Lastname1,Lastname2,...]_XXXXXXXX.zip (in this case results_[Bar,Foo]_598b9a96.zip) with the following contents:

  • artifacts/: directory with all files that where created or modified by the tested notebook as well as rendered matplotlib plots.
  • code.py: code extracted from the notebook including stdout/stderr as comments
  • notebook.ipynb: an identical copy of the tested notebook
  • restults.json: test results

Inspect and edit automatic grades

Let's use autogarde audit to inspect and edit the grades generated by automatic testing located in subfolder grading/.

autograde audit grading/

To open an interactive audit interface triggered by this function we first need to switch to virtual desktop by clicking the VNC icon:
image

Now we can access the interactive interface running at http://127.0.0.1:5000/
image

Preview results of automtic grading.
image

Edit and comment the results of automatic grading.
image

Generate Reports

Let's generate a human readable HTML report for grading results using autograde report, the command below generates a report inside the results archive grading/results_\[Bar\,Foo\]_598b9a96.zip.

autograde report grading/

Let's uncompress the results

pushd grading/
unzip results_\[Bar\,Foo\]_598b9a96.zip
popd

Here is how the generated report looks like: image You can display the full contents of grading/report.html by opening it either from interactive session or locally.

Let's summarise results and generate inside subfolder grading/ the follwoing 2 files:

  • summary.csv with aggregated results
  • summary.html with human readable summary report
autograde summary grading/

Here is how the generated summary looks like: image You can display the contents of grading/summary.html by opening it either from interactive session or locally.