A lightweight solution to mark/grade/check notebook assignments.
$ pip install nbchkrWrite a jupyter notebook main.ipynb, using tags to denote specific cells:
answer:<label>A cell where students are expected to write their answers.score:<total>A cell with assert statements to check an answer. Worth<total>marks.hideA cell that should not be shown.
See documentation for further examples and features.
Create a student version of the notebook:
$ nbchkr release --source main.ipynb --output student.ipynbGiven a student notebook notebook: submitted.ipynb
$ nbchkr check --source main.ipynb --submitted submitted.ipynb --feedback-suffix -feedback.md --output data.csvThis writes to screen the score (total and for each question) and creates
feedback.md as well as reporting the results to data.csv.
Given a pattern of student submissions it is possible to batch check all of them:
$ nbchkr check --source main.ipynb --submitted submissions/*.ipynb --feedback-suffix -feedback.md --output data.csvAn alternative to this tool is nbgrader which offers a comprehensive course management solution and includes features such as:
- An email server to be able to communicate with students;
- The ability to release assignments, feedback and marks directly;
- Addons to the jupyter notebook interface.
nbchkr is meant to be a lightweight alternative.
Full documentation is available at: nbchkr.readthedocs.io