Repolode
jupyter

jupyter/nbgrader

A system for creating, distributing, autograding and manually grading Jupyter notebook assignments.

Stars
1,370
Forks
346
Open issues
294
Last commit
3 days ago

What is it?

nbgrader is a tool for instructors who teach with Jupyter notebooks. It covers the full assignment lifecycle: an instructor writes a notebook with solution cells, generates a student version with those solutions removed, releases it to students, collects submissions, runs automatic grading, and then supports manual grading of the remaining answers.

It is delivered as a set of command line tools plus extensions for the classic Jupyter Notebook interface. A toolbar extension guides instructors through assignment creation, a formgrader extension provides a web UI for collecting and grading submissions, and a student assignment list extension lets students fetch, submit and validate their work.

The project is aimed at course staff who want to run notebook-based coursework on Jupyter, and it is designed to work alongside JupyterHub deployments.

Key features

  • 01Generate student versions of notebooks by removing solution cells.
  • 02Release, collect and autograde assignments from the command line.
  • 03Formgrader web interface for manual grading of submissions.
  • 04Toolbar extension for creating assignments inside Jupyter notebooks.
  • 05Student extension to fetch, submit and validate assignments.

Use cases

  • Running programming or data science assignments in a university course on Jupyter.
  • Autograding notebook exercises with manual review for open-ended answers.
  • Distributing course materials and collecting submissions through JupyterHub.

Quick start

  1. 1

    Follow the installation guide in the nbgrader User Guide (linked from the README)

In collections

Topics

#jupyter#education#grading#autograding#jupyterhub#python#jupyter-notebook#nbgrader#teaching

FAQ

What is nbgrader?
A system for creating, distributing, autograding and manually grading Jupyter notebook assignments. nbgrader is a tool for instructors who teach with Jupyter notebooks. It covers the full assignment lifecycle: an instructor writes a notebook with solution cells, generates a student version with those solutions removed, releases it to students, collects submissions, runs automatic grading, and then supports manual grading of the remaining answers.
Is nbgrader free to use? What license does it have?
nbgrader is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is nbgrader still maintained?
Actively maintained. The last commit to nbgrader was on Nov 3, 2026.
What can I use nbgrader for?
Running programming or data science assignments in a university course on Jupyter. Autograding notebook exercises with manual review for open-ended answers. Distributing course materials and collecting submissions through JupyterHub.
How do I install nbgrader?
Follow the installation guide in the nbgrader User Guide (linked from the README)
Where can I get nbgrader?
The source code and installation instructions are on GitHub: https://github.com/jupyter/nbgrader

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects