Skip to main content

Assignments Overview

Most Pawtograder assignments are backed by a handout repository (starter code) and, optionally, a grader repository (instructor tests and the pawtograder.yml config). When you release an assignment, Pawtograder creates a private student repository from the handout for every student (or group). The autograder runs on every push and reports results back to Pawtograder, where you can handgrade against rubrics, release results, and respond to regrade requests. That is the default configuration and what the student documentation describes. It is not the only one. An assignment can also be configured with no autograder, with student forks of a visible handout, with a fork of the student’s own repository from a prior assignment, with pull-request submission, with direct file upload, or with no artifact at all. Each of those changes what a student sees and what counts as a submission — see Configuration → Student repositories and Configuration → Submission mode.

First-time setup checklist

1

Create the assignment

From Manage → Assignments, click New Assignment. Pick a title and slug, then fill in:
  • Release date and Due date (in the course time zone).
  • Points possible — the maximum the rubric can sum to.
  • Max late tokens — 0 by default, which means no late tokens on this assignment.
  • Submission type — Individual Submissions Only, Group Submissions Only, or Individual or Group Submissions. Required, with the individual option preselected.
  • Repository configuration — how student repositories are created. Defaults to a staff-only template repo that each student gets a fresh private copy of. The other four options change what a student sees on the assignment page.
  • Enable autograder (GitHub Actions) — checked by default. Uncheck it for a repo-only assignment you grade by hand.
  • Submission mode — push by default. Pull-request mode is only offered for the two fork-based repository configurations.
  • Show autograder leaderboard to students if you want the class to see a pseudonymous ranking of the top autograder scores (in Advanced settings, which is collapsed).
Set the repository configuration and submission mode before the release date; changing them once students have repositories is not a clean operation. See Configuration for the full field reference.
2

Set up the grader repo

The grader repo holds your reference solution, instructor tests, and pawtograder.yml. The handout repo holds the starter that students see. Write the autograder config in the grader repo; see Configuring Autograders.
3

Define the rubric

Build the Grading Rubric in the rubric editor. The rubric defines the parts, criteria, and checks that graders apply during handgrading. See Rubrics.
4

Release and monitor

Releasing the assignment creates student repositories and notifies students. Use the Assignment Dashboard for overall progress, the Grading Progress Dashboard tab under Grading Assignments for handgrading progress, and Test Insights for systemic autograder failures.

What’s on each assignment

Each assignment has its own management area inside Manage → Assignments → [Assignment], organized into pages that map to the docs in this section: The leaderboard is not a management page. It is the Show autograder leaderboard to students checkbox under Advanced settings on the Edit Assignment form; see Leaderboard.

GitHub permissions

Pawtograder creates two GitHub teams for each class — a staff team and a students team. Staff are granted access to every assignment repository; students are granted access to only their own. The students team can be used by instructors to share additional read-only repositories (in-class exercises, code samples) with the whole class. Pawtograder reconciles repository collaborators against current group membership whenever you click Fix Repository Permissions on an assignment’s Repositories page. Run the audit after roster changes, group reshuffles, or when a student reports a missing repo. Details and the full audit flow are in Repository Permissions.

Syncing handout updates

After an assignment is released you can push updates from the handout repo to every student repo while preserving each student’s work. The sync detects merge conflicts, retries transient failures, and lets you target a subset of students. Trigger it from the assignment’s Repositories page.