Gradescope is a powerful online feedback and assessment tool that is integrated in UChicago Canvas and supports many types of assignments, from paper-based to digital. In this post, we’ll be taking a closer look at Programming Assignments. If you’re new to Gradescope, you can learn how to configure Gradescope in your Canvas course.

Programming Assignments are code submitted by students by uploading files directly or submitting them via Github or Bitbucket integrations. Gradescope is code-agnostic and works with any language or file.

Programming Assignment Workflow

For programming assignments, the workflow looks like this:

  • Create the programming assignment in Gradescope: Students can upload files to Gradescope or submit larger files using Github or Bitbucket integrations.
  • Create assignment in Canvas: If you want to pass grades back to Canvas from Gradescope, create an assignment in Canvas and link it to the Gradescope assignment. For details on how to do this, see the section “Publish Grades and Post Grades to Canvas” in our knowledge base article on Gradescope for faculty.
  • Grade the code: You can use the autograder, which you’ll set up separately, and/or grade manually with a rubric and in-line comments.
  • Post the grades to Canvas, and publish your grades and/or feedback in Gradescope if desired.
  • View analytics: Review student scores, including minimum, maximum, median, and mean information.

Create Programming Assignments

From the Assignments page in Gradescope, click Create Assignment > Programming Assignment > Next.

The image displays a user interface for configuring the autograder within Gradescope. The left menu includes several sections: “Data Structures” on the left side with options such as “Configure Autograder,” “Manage Submissions,” and others. The main part of the screen is titled “Configure Autograder” and contains settings for uploading autograder files, selecting a base image, and testing the autograder. There are dropdown menus for selecting an autograder file and base image version, as well as radio buttons for choosing between zip file upload or manual Docker configuration. At the bottom of the interface, there are two buttons: “Update Autograder” and “Test Autograder.”

Then provide some basic information about your assignment, including its name and whether you want to enable, among other options: 

  • Anonymous grading
  • Manual grading
  • Group submissions
  • A leaderboard

Select the appropriate options and proceed.

The image displays a user interface for “Gradescope.” On the left side, there’s a vertical navigation bar with options such as “Dashboard,” “Roster,” “Course Settings,” and “Assignments,” the latter which is highlighted. The main part of the screen shows an overlay titled “Create Assignment” with options for the "Programming Assignment" type, including assignment name, anonymous grading, autograder points, manual grading, and due dates, among other settings.

Grade Programming Assignments

As noted above, you can configure and run an autograder on student submissions, manually grade using a rubric and in-line comments, or both. 

To use the autograder, upload a .zip file following the Gradescope autograder specifications and select the base image to build the autograder with.  

The image displays a user interface for configuring the autograder within Gradescope. The left menu includes several sections: “Data Structures” on the left side with options such as “Configure Autograder,” “Manage Submissions,” and others. The main part of the screen is titled “Configure Autograder” and contains settings for uploading autograder files, selecting a base image, and testing the autograder. There are dropdown menus for selecting an autograder file and base image version, as well as radio buttons for choosing between zip file upload or manual Docker configuration. At the bottom of the interface, there are two buttons: “Update Autograder” and “Test Autograder.”

You can also manually grade students’ code using a rubric, just like with other assignment types on Gradescope. This can be done in combination with the autograder, or alone.

The image displays a user interface for “Gradescope.” On the left side, there’s a vertical navigation bar with options such as “Dashboard,” “Roster,” “Course Settings,” and “Assignments,” the latter which is highlighted. The main part of the screen shows an overlay titled “Create Assignment” with options for the "Programming Assignment" type, including assignment name, anonymous grading, autograder points, manual grading, and due dates, among other settings.

Once you are finished grading, you can Publish Grades (in Gradescope) and/or Post Grades to Canvas, if you’ve linked the Gradescope assignment to an assignment in Canvas. (For details on how to do this, see “Publish Grades and Post Grades to Canvas” in our knowledge base article on Gradescope for faculty.)

Further Resources