ilanbigio
Grading Infrastructure

Grading Infrastructure

I designed and built a generic auto-grading system for a new course at Brown, along with a continuous development infrastructure.

My Grading Infrastructure project was an essential component in the creation of a new Computer Systems course at Brown, as it involved designing and building a generic auto-grading system along with a continuous development infrastructure. The project utilized various languages, such as Python, Bash, and C++, and tools like Github Classrooms to provide a seamless and efficient solution for the submission of assignments.

One of the primary focuses of the infrastructure was to set up a shadow "dev" server, which mirrored the actual server used in the course. This allowed for testing submissions and grading before they were released to students, ensuring a smooth and error-free experience. To further improve the grading system, I wrote scripts that automatically separated stencil code from solutions and synchronized them with the central grading server.

Moreover, the project boasted an extremely generic and extensible testing script created with bash. This language-agnostic script proved compatible with existing testing and grading scripts, allowing for hybrid use and bypassing the need to reinvent the wheel. As a result of these innovations, the course has quickly become one of the most popular offerings in Brown's computer science program. The Grading Infrastructure project not only streamlined the grading process but also elevated the overall learning experience for students and faculty alike.