LLMpediaThe first transparent, open encyclopedia generated by LLMs

nbgrader

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Jupyter Hop 5
Expansion Funnel Raw 74 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted74
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
nbgrader
Namenbgrader
DeveloperProject Jupyter, Caleb Hattingh, Grant Hutchison
Released2013
Programming languagePython (programming language)
Operating systemLinux, macOS, Microsoft Windows
GenreEducational technology, Assignment management
LicenseBSD license

nbgrader nbgrader is an open-source assignment and grading system for Jupyter Notebook-based coursework that automates creation, distribution, collection, and grading of computational assignments. It connects tools and platforms such as JupyterHub, Binder (service), and GitHub to support instructors and teaching assistants from institutions like Massachusetts Institute of Technology, Harvard University, and University of California, Berkeley. nbgrader was developed to integrate with pedagogy and assessment practices used in courses running on edX, Coursera, and campus learning platforms.

Introduction

nbgrader provides a workflow for educators to author, release, collect, and grade notebook-based assignments while preserving provenance and reproducibility. The project aligns with infrastructure used by Project Jupyter, Anaconda (company), NumPy, SciPy, Pandas (software), and computational research groups at Lawrence Berkeley National Laboratory. It emphasizes integration with version control systems such as Git and collaboration services like Bitbucket and GitLab. nbgrader supports grading strategies found in manuals from organizations like the Association for Computing Machinery and assessment practices in programs overseen by ABET.

History and Development

Initial development began in the early 2010s concurrent with the rise of Jupyter Notebook and the rebranding of IPython projects. The design drew on pedagogical work at MIT OpenCourseWare and courseware experiments at UC Berkeley and HarvardX. Key contributors and maintainers have included engineers and researchers from Project Jupyter, contributors affiliated with NumFOCUS, and instructors from universities participating in open-source education initiatives. nbgrader evolved alongside related projects such as JupyterLab, JupyterHub, Voila (software), and cloud services provided by Google Cloud Platform and Amazon Web Services for hosting interactive environments.

Features and Components

nbgrader offers components such as assignment authoring, release, fetch, submit, autograde, and feedback exchange. Assignments are authored within Jupyter Notebook or JupyterLab using metadata and cell tags compatible with tools from pytest and testing frameworks like unittest. The autograder component can execute notebooks in isolated environments using containers from Docker (software), orchestration via Kubernetes, or CI systems like Travis CI and GitHub Actions. Gradebook integration stores results in databases supported by SQLite, PostgreSQL, and orchestration systems used by Airflow. nbgrader’s extensible exchangers facilitate workflows with S3 (Amazon Web Services), Google Drive, and LMS platforms such as Canvas (learning management system), Blackboard Learn, and Moodle.

Usage and Workflow

Typical workflow begins with an instructor creating a source assignment in Jupyter Notebook or JupyterLab and marking cells for student work using metadata recognized by nbgrader. The release step distributes student versions via JupyterHub spawners, GitHub Classroom, or cloud images on Google Colaboratory. Students fetch, complete, and submit through nbgrader tools or LMS integrations; teaching assistants use the fetch/submissions interface and autograde routines to execute tests based on scripts inspired by pytest and nose. Manual grading interfaces integrate with gradebook exports for use with administrative systems like SIS at universities and can be combined with plagiarism detection tools from Turnitin or Moss (program)-style services.

Integration and Compatibility

nbgrader interoperates with many ecosystems: notebook formats standardized by the IPython and Jupyter communities, packaging ecosystems like Conda (software), and numerical libraries such as NumPy, Matplotlib, SciPy, and SymPy. It is compatible with cloud and container platforms including Docker (software), Kubernetes, Google Cloud Platform, and educational deployments via Amazon Web Services Educate. Integrations exist with LMS and CI platforms like Canvas (learning management system), GitHub Classroom, GitLab CI, and the LTI (Learning Tools Interoperability) standard promoted by the IMS Global Learning Consortium.

Adoption and Community

Adoption spans research universities, community colleges, and industry training programs that teach data science, computational science, and software engineering. Institutions such as MIT, UC Berkeley, Harvard University, ETH Zurich, and University of Toronto have used nbgrader in undergraduate and graduate courses. Community contributions come from individuals and organizations affiliated with Project Jupyter, NumFOCUS, and open-source initiatives hosted on GitHub. Conferences and workshops at venues like SciPy (conference), PyCon, and JupyterCon have featured tutorials and case studies. Documentation, issue tracking, and feature discussions occur in repositories and on forums associated with GitHub and the Jupyter Discourse community.

Limitations and Criticisms

Criticisms focus on scalability for very large courses, the complexity of configuring secure execution environments, and the learning curve for instructors unfamiliar with Git or Docker (software). Integration gaps with enterprise LMS instances such as Blackboard Learn and certain proprietary assessment tools have been reported. There are concerns about automated grading fairness when evaluating creative work or open-ended projects; similar debates have occurred around assessment tools used in edX and Coursera courses. Ongoing development addresses reproducibility, accessibility, and maintainability challenges highlighted by academic adopters and industry partners.

Category:Open-source software