nbgrader-jupyterquiz

Versions

PyPI

Documentation and Support

Documentation Status Supported Python Versions

Open Source

License OpenSSF Scorecard

Coding Standards

Ruff pre-commit.ci status

Development Status

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Coveralls

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.

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.