Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pyret Autograder — Example Gradescope Assignment: tower

A complete, self-contained pyret-autograder Gradescope assignment, using Gradescope's manual Docker configuration. It is an instance of the assignment template filled in with the tower example assignment. It builds on the published pyretautograder/gradescope-{build,run} base images, so everything the autograder uses is in this repository — no checkout of pyret-autograder required.

For demonstration purposes this example's image is public: pyretautograder/example-gradescope-tower-assignment. A real assignment's image must stay private (see Prerequisites).

Quick start

$ just run

builds the image and grades the sample submission in ./submission/; the graded report lands in ./results/results.json.

Prerequisites

  • Docker
  • just and jq
  • A Docker Hub account (only needed for just publish). Keep assignment images private so students can't read your wheats/chaffs/tests; Gradescope pulls private images via its gradescopeecs account, which you must add as a collaborator on the repository — this requires a paid Docker Hub plan.

Layout

path purpose
spec.arr the grading specification: a list of graders
grading/ support files the spec references — reference implementations, wheats, chaffs
submission/ a sample submission (here, a reference solution) graded by just run
Dockerfile two-stage build on the pyretautograder/gradescope-{build,run} base images
justfile build / local-run / publish recipes (just --list)

Paths at runtime

The autograder runs from /autograder, and every path in spec.arr is relative to it:

  • the student's submission is unpacked into submission/, so refer to their file as e.g. submission/assignment.arr;
  • the contents of grading/ are copied into /autograder, so grading/num-rooms/wheat-1.arr is referred to as num-rooms/wheat-1.arr.

Publishing & Gradescope

just publish builds and pushes the image. In Gradescope, configure the assignment's autograder as "Manual Docker Configuration" with pyretautograder/example-gradescope-tower-assignment:latest.

Making your own assignment

Start from the assignment template — this repository minus the tower-specific content — and follow the workflow in its README.

Versioning

ARG TAG in the Dockerfile pins the base images; gradescope-build and gradescope-run must use the same tag, which the single ARG ensures. The base images are linux/amd64 only; on Apple Silicon, Docker builds them under emulation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages