skip to content
Mateo Correa

Python Autograder

About

Autograder GIF

The Autograder Bot I built was part of 15-112’s Term Project assignment. It’s an automatic grading tool built with Python, using Discord as its interface.

It can handle student submissions1 and grade them based on an instructor’s list of test cases. The bot also allows for previous submissions to be seen, a due date to be defined, and will provide real-time feedback based on the student’s submission. The bot can detect certain features in a submission (i.e., are they using recursion? for loops?) and reject submissions if they fail to meet any of these criteria.

Outcomes

Building an Autograder (and a Discord bot) from scratch, given 3 weeks, is definitely a challenge. The most significant outcome of this project was managing my time - balancing the amount of time put into the project without impacting my other courses. The project also taught me to weigh how I select any additional components I might need. For example, self-hosting a MySQL instance would be overkill for a small project like this, so a file-based solution was chosen instead (SQLite).

If I were to revisit this project, the mains goals I’d have in mind would be to expand the programming languages it supports and move away from a Discord interface to something like Flask, which gives me better control over the content displayed.

Footnotes

  1. Limited to Python submissions