A system for assigning and grading Jupyter notebooks, with extensions for instructors and students.
nbgrader is a system for assigning and grading Jupyter notebooks, providing specialized extensions and tools for educators and students. It solves the problem of managing interactive coding assignments by integrating directly into the Jupyter ecosystem, enabling efficient creation, distribution, collection, and grading of notebook-based coursework.
Educators, instructors, and teaching assistants who use Jupyter notebooks for courses involving programming, data science, or computational assignments, as well as students in such courses.
Developers choose nbgrader because it offers a seamless, integrated solution within Jupyter, reducing the friction of assignment management with features like autograding, manual grading interfaces, and student-friendly submission tools, all while leveraging the familiar notebook environment.
A system for assigning and grading notebooks
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Extensions like the instructor toolbar and student assignment list work natively in Jupyter, providing a familiar interface that reduces context switching for both teachers and students, as highlighted in the README with GIF demonstrations.
Covers the entire assignment lifecycle from creation with the formgrader extension to distribution, autograding, and manual grading, all within Jupyter, streamlining educational management as described in the key features.
The assignment list extension allows students to view, fetch, submit, and validate assignments seamlessly from within Jupyter, enhancing the learning experience without external tools.
CLI tools enable instructors to automate tasks like generating and grading assignments, useful for scripting and batch operations, as mentioned in the command-line tools section.
Installing and configuring nbgrader with all extensions requires multiple steps and can be challenging, especially in multi-user environments like JupyterHub, as hinted by the detailed installation documentation.
It only supports Jupyter notebooks, making it unsuitable for courses using other formats or tools, which limits flexibility in diverse educational settings.
While autograding exists for code cells, manual grading of written responses still demands significant instructor time, which may not scale well for large classes despite the formgrader extension.