Using NBGrader to autograde IPython Notebooks.
Guides
December 10, 2021

Using NBGrader for Python Jupyter notebooks in CodeGrade

NBGrader is an automated grading system for Jupyter Notebooks and it’s a nice and easy way to automatically grade cells within a notebook. If you want to learn more about how NBGrader works, you can find their documentation here: https://nbgrader.readthedocs.io/en/stable/.

When you have created an NBGrader assignment, you will have a teacher version containing all the tests (including hidden tests) and a student version, which doesn’t contain the hidden tests. Students will then go on and create their assignment within this template.

In CodeGrade, we have created an NBGrader integration called `cg-nbgrader`, so that you only have to upload the teacher template and CodeGrade will run NBGrader for you. This will also allow your students to simply upload their Jupyter Notebook whenever they’d like and get instant feedback from CodeGrade.

After a student hands in their notebook, NBGrader will instantly run and a score will be presented to the student. Furthermore, the graded notebook will also be available in the Code Viewer, so students can see what they did right, and what they can improve on.

After running the notebook, the executed notebook (including the results) will appear under the AutoTest Output in the Code Viewer.


The score will be outputted from CodeGrade’s NBGrader integration. With a Capture Points test you can capture this score.


Autograde Jupyter Notebooks using the most powerful and easy to use autograder!

Setting up NBGrader in CodeGrade

To start using the NBGrader integration in CodeGrade, you first need to upload the teacher version you get out of NBGrader as a fixture in CodeGrade. This file needs to have the same name as the file that students will hand in. Next, you need to install the CodeGrade NBGrader integration in the “Global setup script”. Simply input the following command `cg-nbgrader install`. If you need to install any pip packages, you can also do that by passing it as an argument to cg-nbgrader `cg-nbgrader install pandas matplotlib`

This is how it might look for you in CodeGrade:

Setting up NBGrader with pip packages in CodeGrade's autograder.

As you can see, I’ve also used a simple trick in the “Per-student setup script” to make sure the notebook the students will hand in has the correct name, by simply copying any `.ipynb` file to the correct filename.

Creating NBGrader tests

Finally, we can create the Capture Points test to execute NBGrader. As “Program to test” use the following command: `cg-nbgrader run STUDENT_FILENAME.ipynb`.

For example:

Creating an NBGrader test in CodeGrade.


That’s all! Simply start the AutoTest and you can use NBGrader with CodeGrade seamlessly!

Youri Voet

Youri Voet

Co-founder and CEO
Youri recognizes the crucial need for a platform uniting educators and students in coding education and has made it his mission to bridge that gap. He is down-to-earth, relishes culinary experiments and indulging in reality TV.

Continue reading

How to Stop Caring about Grades

Learn to save time with grading with alternative methods for teaching. Make your course accessible and inclusive with methods backed by research.

How to Stop Caring about Grades

Embracing a New Era: Harnessing Generative AI for Computer Science Education

Discover the transformative impact of Generative AI (Gen AI) on computer science education. Explore innovative tools and methodologies reshaping learning experiences and preparing learners for an AI-centric future. Uncover benefits, challenges, and evolving practices at the intersection of technology and pedagogy.

Coding Quizzes are here!

Discover the latest addition to CodeGrade: coding quizzes! Elevate your learning experience with dynamic assessments seamlessly integrated with AutoTest V2. Engaging, clear, and user-friendly. Learn more now!

Coding Quizzes are here!

Transforming CS Education: Innovative Strategies for Curriculum Enhancement

Discover how Experiential Learning Theory transforms traditional teaching methods and improves computer science curriculum for optimal student engagement and success.

Sign up to our newsletter

See how CodeGrade can transform your courses today!