nbgrader-jupyterquiz
Versions |
|
Documentation and Support |
|
Open Source |
|
Coding Standards |
|
Development Status |
nbgrader-jupyterquiz lets instructors embed interactive, gradeable quizzes
directly inside Jupyter notebooks using a simple Markdown syntax. During
nbgrader generate_assignment the quiz source is transformed into interactive
quiz cells (powered by a fork of jupyterquiz), and the answer key is
stripped from the released notebook.
Quizzes placed in an nbgrader Manually Graded Task cell are
automatically graded: student responses are persisted to a
responses.json sidecar as they answer, and nbgrader autograde
evaluates them with partial-credit support. Per-question points
(including fractions like {0.5}) are supported, and the Markdown
syntax handles MathJax, code blocks, and multi-line content. See the
graded-quizzes docs for the full workflow.
Free software: MIT license
Documentation: https://nbgrader-jupyterquiz.readthedocs.io
Installation
pip install nbgrader-jupyterquiz
Quick start
Register the preprocessor at the front of your nbgrader_config.py:
c.GenerateAssignment.preprocessors.insert(0, "nbgrader_jupyterquiz.CreateQuiz")
Write quizzes in Manually Graded Task cells using #### Quiz /
#### End Quiz delimiters:
#### Quiz
* (SC) "What is the capital of France?"
+ "Paris"
- "London"
- "Berlin"
#### End Quiz
Run nbgrader generate_assignment — quiz regions are replaced with
interactive widgets and the answer key is stripped from the released
notebook. Student responses are auto-graded by nbgrader autograde.
See the documentation for the full quiz syntax, nbgrader pipeline, graded quizzes, and display options.
Credits
This package incorporates a fork of jupyterquiz (v2.9.6.4) by
John M. Shea, copyright 2021–2025, used under the MIT License.
See LICENSES/jupyterquiz-MIT.txt.
This package was scaffolded with Cookiecutter and the Ouranosinc/cookiecutter-pypackage project template.