Autograding: Less Grunt Work, More Teaching

Computer science instructors are turning to autograding tools to handle the pressure of larger classes. Beyond the obvious time savings, educators report that automated grading changes the quality of feedback students receive — and even influences how students perceive criticism.

Dan Wallach teaches a large Rice University course in introductory computer science, with over a hundred second- and third-year students. He built his own autograder, RiceChecks, on top of the Gradle build-automation tool.

Mike Zamansky runs a computer science lab paired with CS1 at Hunter College. For his class of first-year undergraduates, he adopted Travis CI, a service that automatically generates builds and executes tests.

Redirecting Effort Toward Meaningful Assessment

The main advantage of autograding is not speed for its own sake — it's the redistribution of a teacher's limited time. Zamansky used the saved hours to scrutinize code that revealed "something about the students." He draws an analogy to English instruction: no teacher would use an autograder on an essay, since reading student work is how they get to know their students. But automated grammar checks are fair game. The same logic applies in programming, where automating routine checks lets instructors focus on the parts of student work that reveal understanding and thought process.

Wallach echoed this, advising instructors to automate whenever possible to "free up your human graders to look at the things you can't automate." The result is grading that centers on complex, human elements of a student's work — and that helps teachers understand who their students are.

A Clear Boost to Student Performance

Wallach estimates that autograding improved grades in his course by 20 percent. When students can see the grade metrics for an assignment, he observed, "they can continue pushing [changes and running the autograder] until they reach the metrics they want."

Speed is another major factor. Students lose momentum when results take weeks to arrive, and Wallach's course evaluations reflected that. "The number one complaint was that it takes forever to get grades back. We were taking weeks. Now, assignments are due Sunday night and three-quarters of the students are graded by Monday afternoon. It's a mammoth, mammoth improvement."

Leveling the Field

Human graders bring inconsistency — a strict grader next to a lenient one creates inequities that have nothing to do with student ability. Wallach notes that autograding "keeps things as objective as possible" because "there isn't a lot of wiggle room where the grades might diverge."

The impersonal nature of an automated check can also soften the sting of negative feedback. "The computer just says pass or fail," Wallach explained, "and that's an opportunity for students to not feel bad about it when they know everyone has the same challenge and they're fighting against the same autograder. It becomes your shared adversary to overcome."

That objectivity extends to team disputes. Wallach says when an assignment group disagrees, "team members can agree they want to get those points. So, a certain amount of objectivity in the autograder might void a certain amount of partner strife." An impartial system helps students accept feedback instead of dismissing it as unfair.

Confidence for Beginners

Autograding also reassures students navigating the early hurdles of programming environments. A student's machine may be misconfigured, code might pass locally but fail on the server, or a file might go uncommitted. "Rerunning the autograder on GitHub Actions, Travis CI, or whatever else gives the student a little confidence boost. GitHub Actions gives them a green check mark, and that helps reduce a certain amount of their stress," Wallach said.

Where Autograding Works Best

Zamansky sees autograding as an especially good fit for the fundamentals, in both introductory and advanced classes. "Even if you're taking an advanced class, the first assignments in any given unit are going to be small things just to see if you understand certain ideas. That's where an autograder can give students the type of feedback they need. Offload that from the teacher." He notes that students seem to reach the same level of proficiency either way, but autograding gets them there "more quickly."

Bringing Autograding into Your Course

GitHub Classroom supports autograding directly: run existing tests on each student's repository or author new tests as you create an assignment. Students see the test results on every commit, which gives them constant feedback to iterate toward a passing solution.

Get started with autograding for GitHub Classroom