About PyAutoGrader

Built by an educator, for educators.

Origin

The Story

Portrait of Jesse Sestito, Engineering Professor at Valparaiso University and creator of PyAutoGrader

Jesse Sestito

Engineering Professor
Valparaiso University

PyAutoGrader was born in the classroom. When our engineering department at Valparaiso University transitioned from MATLAB to Python, we needed an autograding solution that worked for our courses. The existing options were subscription-based platforms with per-student fees, or open-source tools that required significant infrastructure to deploy. Neither fit what we needed: a simple, free tool that runs on student machines.

So I built one. What started as a basic script to automate variable checks for an introductory engineering course grew into a full autograding platform with 60+ test types, encrypted assignment distribution, multiple result collection channels, and a self-hosted submission server with analytics and plagiarism detection.

The project is driven by a straightforward goal: give educators a free, capable autograding tool that respects their infrastructure and their students' data. No subscriptions, no vendor lock-in, no student data leaving your institution.

I am a mechanical engineering professor at Valparaiso University with research interests in computational materials science, machine learning, and engineering education. PyAutoGrader grew from my teaching practice - I use a Mastery Based Learning approach in my programming courses, where students receive instant feedback and can resubmit until they demonstrate understanding.

I use it in my own courses every semester, which means the features reflect real classroom needs rather than hypothetical use cases.

Principles

The Philosophy

Free. Always.

Educators already face enough budget constraints. Grading tools should not add to them. PyAutoGrader has no subscriptions, no per-student fees, and no premium tiers. It is free for everyone, permanently.

Real Skills

Students learn by setting up Python, managing packages, and running code on their own machines. A cloud-hosted autograder skips over these experiences. PyAutoGrader runs locally, so students build practical skills alongside their coursework.

Your Data, Your Infrastructure

Grading results and student code stay on your institution's infrastructure. The self-hosted server runs on your machines. There is no third-party data processing, no vendor agreements, and no FERPA concerns with external services.

Pedagogy

Mastery Based Learning

The core idea: students learn more effectively when they receive immediate, specific feedback and can iterate until they demonstrate understanding - rather than submitting once and receiving a grade days later.

This project grew from a Mastery Based Learning approach to teaching programming. PyAutoGrader supports this workflow directly. Students run the grader as many times as they want, see exactly which tests pass and fail, read targeted feedback on each failure, and fix their code incrementally. The autograder is not just a grading tool - it is a learning tool that helps students work toward mastery at their own pace.

Instructors benefit too. With instant automated feedback, class time shifts from explaining what went wrong on last week's homework to working through new concepts. Students arrive having already iterated on their code and resolved the straightforward issues on their own.

Get in Touch

Have questions, feedback, or want to request a custom test type?