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.
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:
- Jupyter notebooks(.ipynb) with python and SageMath kernels
- Databricks notebooks(.dbc) with support for Python and Scala.
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.
- Create a 'Master' notebook. This is a notebooks which contains cells of different types: lecture cells(optional), problem cells, test cells and solution cells.
- 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
- Run the NotebookGrader which will fetch student submissions from Canvas, grade them and upload the results.
The NotebookGrader will use python_on_whales
and databricks-cli
. Install using
pip3 install python_on_whales
pip3 install databricks-cli
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
For instructions on how to generate notebooks, see the readme in Test_course.
For instructions on how to run the NotebookGrader, see the readme in NotebookGrader -> AutoGrader