This repository contains collection of scripts for use with University of Melbourne teaching infrastructure.
The original set are based off work for Foundations of Algorithms by Shaanan Cohney. They make heavy use of code written for CS50, Harvard's introduction to Computer Science.
Of particular interest to individuals teaching programming is the autograding repo, which contains an image for sandboxing and testing student code submissions. It is a light wrapper around check50
with examples.
Many of the scripts interact with either Canvas or Grok Learning, which is a structured platform for teaching programming.
The scripts generally require the user to configure either a cookie or an API key to allow access to the platforms.
The scripts also occasionally make use of undocumented APIs that were reverse engineered by Shaanan Cohney, but which may break as a result.
Scripts are largely written in Python 3.9 but may work with earlier versions.
Most scripts require config.ini which can be placed either in your current working directory, or in the script directory. A sample is provided with the various options for scripts included. Hopefully you'll get a clear error message if you run a script and a required option is not set.
A few scripts require you to add a rubric, a sample of which is included. These need Canvas Question IDs, that you can pull by exporting a quiz from Canvas' web interface and viewing the resulting CSV.
Folder | Description |
---|---|
add_global_fudge_points | Adds fudge points to a Canvas student quiz |
autograding | Docker image, shell script, and python scripts, that enable automatic grading of C code (or other languages) |
change_question_score | Demo of how to adjust the score students receive for a particular Canvas quiz question, for example to fix an error |
code_to_pdf | Light wrapper around render50 to produce PDFs from student code |
download_quiz_questions | Downloads student quiz questions locally for further analysis/autograding |
get_scores_grok | Use an undocumented Grok API to fetch the full details of which tests a student has passed (beyond what the web interface allows for export) |
grade_coding_quiz | Fancy terminal interface for grading Canvas quizzes, easy adaptable, faster than Speedgrader for my uses |
questions_to_csv | Retrieves question-by-question points breakdown from Canvas quiz and stores it in a CSV |
students_to_csv | Get section and student details in CSV format |