A secure, scalable approach to student-graded homework for self-reflection.
Author: Dr. Matthew Ford ([email protected]) Website
Use this script to compare student self-graded scores to instructor scores and enter final grades into the Canvas gradebook.
- Obtain a Canvas API key and put it in a text file called "API_KEY.txt" in the same folder as this Python script.
- Assign homework on Canvas: Create a zero-point assignment called "Homework X - submit to Gradescope"
- Create Gradescope assignment: Create a Gradescope assignment with the correct number of problems. Each problem should have a point value of 0. Link the Gradescope assignment to the Canvas assignment.
- Create a Canvas quiz (Classic Quizzes) called "Homework X - enter your own grade". The first "question" should be a text-only question with links to the homework solutions and grading rubrics.
- Add a Numerical Answer question for each homework problem. Name each problem "Problem X" where "X" is an integer. Set the "answer" to -1, and set the point value to the correct number. Optionally add a file upload question at the end for students to upload their filled-out rubric.
- Set the quiz "Available from" date to just shortly after the homework is due.
- Students complete the "Homework X - enter your own grade" assignment on Canvas, entering their numeric score as the "answer" for each question.
- Instructors grade the "check problem" on Gradescope and sync grades to Canvas.
- After students have submitted their own scores, run the IPython script to compare and synchronize grades. The script will automatically create a new Canvas assignment "Homework X - final grade".
- Review the log file and look for significant discrepancies.
- When you are ready to post final scores, update
enter_into_gradebook = True
and run the script again.