Skip to Main Content

AutoLab Documentation

This is your site's tagline and can be changed

NOTE: THIS SITE IS UNDER CONSTRUCTION

[ This documentation is meant to supplement the official Autolab guides from Carnegie Mellon – the original creators of Autolab. ]

Autolab – what is it for?

  • Autolab is an online system which enables course instructors to automate the task of grading student coded homework assignments and assigning grades. Number scores/grades and other types of feedback can be shown to students immediately after submission.
  • In addition, there are mechanisms for user/roster management, gradesheets, handouts, score penalties, and others. Each of these and more will be described in more in-depth sections to follow below.

Autolab – how does it work?

“Autolab” as a whole system is composed of a few components:

Autolab – the web portal that instructors, TA’s and students use

  • Through this portal, instructors configure the courses and homework assignments, students submit homework solutions, and TA’s review submissions and tweak grades as needed 
  • Autolab is a basic RESTful web service written in Ruby on Rails

Tango – the background server which handles the actual automated grading (or “autograding,” as it is called) 

  • Typical users of Autolab do not interact directly with Tango, but instructors may modify and tweak certain aspects of how Tango will grade assignments via the Autolab site. 
  • Tango is a RESTful api server written in Python 
  • Every time a student submits an assessment solution, Autolab passes it over to Tango, which then uses Docker to create a fresh virutalized environment in which to run and test the solution. Afterwards, it sends back a response to Autolab that grading is complete, along with the feedback generated by autograding. 

Database – typical MySQL database to store the information displayed on the Autolab front-end.