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 read only cells are locked (non-deletable and non-editable)

1
2
nbgrader:
   LockCells.lock_readonly_cells: True

to the .codio-jupyter file

LockCells.lock_solution_cells : Bool

Default: True

Whether solution cells are locked (non-deletable and non-editable)

(Use Case for the above: To have more control over cells )

ExecutePreprocessor.interrupt_on_timeout : Bool

Default: False

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

At present we do not have any additional options, but have plans in the future to allow to specify port for .jupyter or access tokens.
If you require any assistance at all, please don’t hesitate to contact us