nbgrader autograding support

Jupyter notebook has auto-grade functionality through nbgrader that Codio supports

Overview

Unit creators create the unit with Jupyter notebook files for the assignment.

nbgrader support doesn’t require guides or any other assessments.

Any user configurations required should be stored in a .codio-jupyter file.

if a .codio-jupyter file exists in a project we assume it is jupyter based grader, and therefore only nbgrader can be selected for the assessment scripts in the unit

When the unit is published to a class, either as an individual project or as part of a course/module, the release version is created for the student.

When the student submits the assignment by marking the unit as complete, it will be autograded automatically.

Manual grading is also available if required

Configuration

Extend Timeout period

To extend the time required for completion (to 90 seconds in this example), you can add

1
2
nbgrader:
   ExecutePreprocessor.timeout: 90

to the .codio-jupyter file

Lock all cells

To lock all cells (Default: False)

1
2
nbgrader:
   LockCells.lock_all_cells: True

to the .codio-jupyter file

Lock all grade cells

To lock all grade cells (Default: True) where grade cells are locked (non-deletable)

1
2
nbgrader:
   LockCells.lock_grade_cells: True

to the .codio-jupyter file

Lock all read-only cells

To lock all grade cells (Default: True) where read only cells are locked (non-deletable and non-editable)

1
2
nbgrader:
   LockCells.lock_readonly_cells: True

to the .codio-jupyter file

Lock all solution cells

To lock all solution cells (Default: True) where solution cells are locked (non-deletable and non-editable)

1
2
nbgrader:
   LockCells.lock_solution_cells: True

to the .codio-jupyter file

Execute preprocessor on timeout

If execution of a cell times out, interrupt the kernel and continue executing other cells rather than throwing an error and stopping.

1
2
nbgrader:
   ExecutePreprocessor.interrupt_on_timeout: True

to the .codio-jupyter file

If you require any assistance at all, or would like us to consider adding additional functions, please don’t hesitate to contact us