Autolab

Autolab is an open-source automated code-grading LMS used by the CSE Department to provide students with instant, high-quality feedback on their programming assignments

About

Autolab is the primary platform for submitting and grading programming assignments within the CSE department. Originally developed at Carnegie Mellon University and open-sourced in 2015, the UB CSE department began experimenting with it for a few courses in 2017. Today, it’s imperative to our academic mission, serving as the backbone for nearly every programming-heavy course in the department. Handling over 2,000 daily submissions, Autolab provides near-instant, high-detail feedback at a scale unachievable with manual grading, ensuring consistent academic standards across the department’s largest courses.

Autolab is composed of several services beyond the core web application. The Tango job scheduler distributes autograding tasks across six grading servers. The Autolab Self-Service Portal provides additional functionality that doesn't belong in the core application, such as retrieving data from external university databases. The entire project utilizes four database technologies for different purposes (MySQL, PostgreSQL, Redis, and Oracle) and two reverse proxies (Apache and Nginx). Additional tools are used for deployment, authentication, and system monitoring.

Links

Visit Autolab at autolab.cse.buffalo.edu

Visit the Autolab Self-Service Portal at autolab.cse.buffalo.edu/portal

Read our extensive documentation at napps.cse.buffalo.edu/docs/autolab

Contact

Autolab is primarily managed by Nicholas Myers on the SENS Software Engineering Team (formerly CSE IT). The best way to contact us about Autolab is to send a detailed email with a subject containing "Autolab" to cse-consult@buffalo.edu. We're happy to help with anything you need, whether you have questions, a bug report, or a feature request.

Students, please reach out to your instructor first, unless you're absolutely certain there's a system-wide problem with Autolab. We do not control course enrollment.

Features

  • Automated course provisioning through direct integration with central university databases for instant instructor setup
  • Automated instant feedback and grading for programming assignments in any programming language
  • Custom section-specific deadlines to accommodate varying course schedules and accessibility requirements
  • MOSS plagiarism detection to maintain high standards of academic integrity
  • Manual annotations and grading for non-programming assessments, such as PDFs
  • Submission cooldown timers to regulate submission frequency and promote thoughtful development habits
  • GitHub repository integration that bridges student version control metadata directly into the autograding environment
  • Anonymous class scoreboards to encourage healthy, competitive student engagement
  • Inclusive identity support with default preferred-name synchronization through university authentication
  • Distributed job scheduling via Tango for high-volume, parallel submission processing during peak demand
  • Includes all the features instructors expect from an LMS, like gradebook management, bulk imports and exports, student performance analytics, audit logs, role-based access control, late submission penalties, announcements, and handout distribution.
  • And so much more!