Gradescope programming assignments

Gradescope programming assignments allow student to submit code files in any programming language to Gradescope. Instructors can then either use Autograder to mark work or manually grade code. This article provides an introduction to assignment setup and sources for further support.

For an overview of how Gradescope programming assignment work check out the video below:

The guidance below is based on documentation from Gradescope and the experiences of staff in FSE who have used the programming assignment.

Gradescope provides a language-agnostic platform for running Autograders on their infrastructure by running in Docker containers. Autograders run by default on an Ubuntu image in a Docker container.

The Autograder consists of a setup script which will install any dependencies needed along with an executable script that does something appropriate with the submitted code and provides results conforming to a spec (essentially a JSON output that describes the results).

After uploading an Autograder, Gradescope will try and build it – pulling dependencies. Once configured, you can test the Autograder by submitting some code.

For information on how to get started check out Gradescope Autograder Documentation, which also contains example Autograders (Python, Java, C#).

If you need help with set up Gradescope recommends that you email help@gradescope.com. You can also ask questions on the Github discussion forum.

Students can submit via upload to Gradescope or through a git repository. The uploaded files can then be run against the Autograder code.

Direct submission:

Zip files can be used to submit a directory structure. With this approach staff need to make sure that the archive unpacks into the appropriate directory structure. 

Integration with Git repositories:

Gradescope allows integration with git repositories. Integration allows students to identify a repository and branch that will be pulled into the Autograder. Out of the box, Gradescope allows integration with github and bitbucket. Integration with gitlab is also possible but requires some set up in order to support authorisation.