Autograding procedure for local grading using nbgrader. Setup to be used with Blackboard.
- Instructor creates assignment in a Jupyter notebook and uses
nbgraderformating for autograding. - Generate the assignment via
createAssignment()function withingradingFunctions.py. - Distribute assignment to students via Blackboard. Set to a single submission. ** code should take the newest submission if there are multiple - has not been tested **.
- Collect assignments on Blackboard.
- Generate a
.zipfile with student submissions (expecting a.txtand.ipynbper student). - Download a gradebook file with the specific assignment selected (expects a
.csv).
- Generate a
- Autograde the assignment using the
autogradeAssignment()function ingradingFunctions.py. Assignment results will be displayed and saved into thescratchfolder.
This will automatically be properly made when using the setupCourse() function, however, there are many nbgrader features that will not work because the must be configured manually within the nbgrader_config.py file.
Sample directory structure should look like:
opath/ # overhead directory
├── how-to-grade.ipynb
├── gradingFunctions.py
├── coursename/
│ ├── nbgrader_config.py
│ ├── gradebook.db
│ ├── autograded/
│ │ ├── student_1/
│ │ │ └── ps1/
│ │ │ └── ps1.ipynb
│ │ └── student_2/
│ │ └── ps1/
│ │ └── ps1.ipynb
│ ├── feedback/
│ │ ├── student_1/
│ │ │ └── ps1/
│ │ │ └── ps1.ipynb
│ │ └── student_2/
│ │ └── ps1/
│ │ └── ps1.ipynb
│ ├── source/
│ │ └── ps1/
│ │ └── ps1.ipynb
│ ├── release/
│ │ └── ps1/
│ │ └── ps1.ipynb
│ └── submitted/
│ ├── student_1/
│ │ └── ps1/
│ │ └── ps1.ipynb
│ └── student_2/
│ └── ps1/
│ └── ps1.ipynb
└── temp/
Note This should not have to be manually made - after the first assignment has been made and graded, every file should appear.
formgrader is still fully functional (besides exchange-setup), however to access it for your course you must be located in the coursename directory before launching Jupyter Lab or Jupyter Notebook.