W3 pull-mirror of github.com/datascience-intro/GenJSONnotebookGrader (upstream canonical)
Find a file
Raazesh Sainudiin dd3c720ab6
Merge pull request #7 from datascience-intro/test/sovereign-git-roundtrip
test: sovereign-git round-trip marker in README
2026-07-21 11:19:11 +02:00
data Initial public release 2022-09-01 17:51:49 +02:00
GenerateMaterial Moved GenerateMaterial, updated config template, added DBCLI 2022-10-26 17:38:31 +02:00
Graded Initial public release 2022-09-01 17:51:49 +02:00
Grading Initial public release 2022-09-01 17:51:49 +02:00
NotebookGrader format specific issue in restWrapper 2022-10-28 18:04:51 +02:00
Response adding dir for responses 2022-09-08 16:56:40 +02:00
SolutionWTest fetch host from dbconfig and added necessary folders 2022-09-07 21:29:37 +02:00
StudentSubmission Initial public release 2022-09-01 17:51:49 +02:00
CanvasInterface Initial public release 2022-09-01 17:51:49 +02:00
CLI.py Revert "Revert "Cli"" 2022-10-07 15:29:28 +02:00
configGrader.json.template renaminf config JSONs to be template 2022-09-08 16:02:18 +02:00
configNotebooks.json.template Moved GenerateMaterial, updated config template, added DBCLI 2022-10-26 17:38:31 +02:00
courseLink branch fix 2022-10-27 18:05:04 +02:00
DBCLI.py updated CLI, fixed folder paths in databricks 2022-10-28 12:26:04 +02:00
Doxyfile branch fix 2022-10-27 18:05:04 +02:00
generate.py Moved GenerateMaterial, updated config template, added DBCLI 2022-10-26 17:38:31 +02:00
generate_assignment.py Moved GenerateMaterial, updated config template, added DBCLI 2022-10-26 17:38:31 +02:00
Grader.py correcting names in databricks and archiving student submissions after grading in grading/ASSIGNMENT_X/Grading_Archive 2022-09-09 16:18:02 +02:00
LICENSE Initial commit 2022-08-31 14:04:37 +02:00
Master branch fix + comments 2022-10-27 18:22:15 +02:00
quickstart.md added quickstart md 2022-10-28 18:13:05 +02:00
README.md test: sovereign-git round-trip marker in README 2026-07-21 11:14:50 +02:00
users.json branch fix 2022-10-27 18:05:04 +02:00

GenJSONnotebookGrader

Oskar Åsbrink, Kristoffer Torp

2022, Uppsala, Sweden

This project was supported by Combient Mix AB through summer internships at:

Combient Competence Centre for Data Engineering Sciences, Department of Mathematics, Uppsala University, Uppsala, Sweden

This project is a refactoring and repackaging of work contributed by:

  • Suparerk Angkawattanawit
  • Benny Avelin
  • Raazesh Sainudiin
  • Tilo Wiklund

Don't hesitate to raise an issue if you encounter errors.

Introduction to the NotebookGrader

This Notebook AutoGrader converts platform-specific notebooks to JSON to be able to run automatic grading of assignments that are then uploaded to Studium using the Canvas API.

This NotebookGrader supports:

  1. Jupyter notebooks(.ipynb) with python and SageMath kernels
  2. Databricks notebooks(.dbc) with support for Python and Scala.

Overview

To use the NotebookGrader there are a couple of steps to follow: 0. Clone the NotebookGrader,test_course and CanvasInterface repositories. Put them beside each other in the same folder.

  1. Create a 'Master' notebook. This is a notebooks which contains cells of different types: lecture cells(optional), problem cells, test cells and solution cells.
  2. From the master notebook, you generate the following notebooks
    • Lecture notebook containing instruction cells, lecture cells etc
    • Problem_TEST notebook that the NotebookGrader uses to correct the student submission
    • Problem notebook for students to fill in
  3. Run the NotebookGrader which will fetch student submissions from Canvas, grade them and upload the results.

0. Install necessary dependencies

The NotebookGrader will use python_on_whales and databricks-cli. Install using

pip3 install python_on_whales pip3 install databricks-cli

1. Create a Master notebook

The NotebookGrader needs the Master notebook to be in a specific format. For instructions on how to create a master notenook see the readme in Test_course

2. Generate notebooks

For instructions on how to generate notebooks, see the readme in Test_course.

3. Run the NotebookGrader

For instructions on how to run the NotebookGrader, see the readme in NotebookGrader -> AutoGrader

sovereign-git round-trip test by Raazesh Sainudiin and an IAS Commons Continuum - Torpshammar, Sweden - tis 21 jul 2026 11:14:20 CEST