Autograding procedure for local grading using nbgrader
. Setup to be used with Blackboard.
- Instructor creates assignment in a Jupyter notebook and uses
nbgrader
formating 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
.zip
file with student submissions (expecting a.txt
and.ipynb
per 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 thescratch
folder.
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.