Skip to content
Course management service that enables auto-graded programming assignments.
Ruby HTML Java JavaScript CSS Shell Other
Branch: master
Clone or download

Latest commit

victorhuangwq Fixes issue where released grades aren't shown on handin page (#1171)
* Changes to_i to a shorthand to change t to 1

* Uses is_truthy util to convert instead
Latest commit a419a28 May 30, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
app Fixes issue where released grades aren't shown on handin page (#1171) May 31, 2020
bin lots of things are broken, but ran the upgrade script and fixed a few… Feb 8, 2020
config production.rb.template fixes (#1144) May 8, 2020
db Course dashboard update (#1143) May 3, 2020
docker [config] Strengthen SSL configuration Apr 29, 2015
examples Changed hello's example to use autograde on demo site Feb 8, 2020
lib Fix broken call in autolab:populate and cache on Travis Feb 8, 2020
public Autolab v2.1.0 (#946) Dec 19, 2017
script Autolab 2.0.1 Release (#782) Mar 2, 2017
spec All tests passing Feb 8, 2020
templates Ran rubocop --autocorrect Mar 13, 2015
.dockerignore Added dockerignore to ignore Git folder Apr 28, 2015
.gitignore Add .env to gitignore Feb 8, 2020
.rake_tasks~ Autolab 2.0.1 Release (#782) Mar 2, 2017
.rspec Update .rspec and .rubocop.yml Feb 8, 2020
.rubocop.yml Update .rspec and .rubocop.yml Feb 8, 2020
.rubocop_todo.yml Update Rubocop Apr 27, 2015
.ruby-version Updated ruby version Feb 8, 2020
.travis.yml Fixes month selection not showing on the edit assessment handin tab /… May 16, 2020 Fix numbering issue Dec 31, 2016
Dockerfile Move docker-specific config files into docker/ Apr 20, 2015
Gemfile Hide contents of binary files on speedgrader (#1152) May 14, 2020
Gemfile.lock Hide contents of binary files on speedgrader (#1152) May 14, 2020
LICENSE Revert license to Apache Feb 25, 2016 Update to remove the old update Mar 9, 2020
Rakefile Ran rubocop --autocorrect Mar 13, 2015 Ran rubocop --autocorrect Mar 13, 2015 Autolab v2.1.0 (#946) Dec 19, 2017

Autolab is a course management service, initially developed by a team of students at Carnegie Mellon University, that enables instructors to offer autograded programming assignments to their students over the Web. The two key ideas in Autolab are autograding, that is, programs evaluating other programs, and scoreboards.

Autolab also provides other services that instructors expect in a course management system, including gradebooks, rosters, handins/handouts, lab writeups, code annotation, manual grading, late penalties, grace days, cheat checking, meetings, partners, and bulk emails.

Since 2010, Autolab has had a transformative impact on education at CMU. Each semester, it is used by about 5,000 CMU students in courses in Pittsburgh, Silicon Valley, Qatar, and Rwanda. In Fall, 2014, we are releasing Autolab as an open-source system, where it will be available to schools all over the world, and hopefully have the same impact it's had at CMU.

Build Status


We released new documentation! Check it out here.

We are currently in the process of updating our documentation to work with our newest release of Autolab, v2.5.0, which has been upgraded to Rails 5 from Rails 4


Setting up Tests

  1. Add a test database in database.yml

  2. Create and migrate the database.

    RAILS_ENV=test bundle exec rake db:create
    RAILS_ENV=test bundle exec rake db:migrate

    Do not forget to use RAILS_ENV=test bundle exec in front of every rake/rails command.

  3. Create necessary directories.

    mkdir attachments/ tmp/

Running Tests

After setting up the test environment, simply run spec by:

bundle exec rake spec

Rails 4 Support

Autolab is now running on Rails 5. However, we may still work on important bug fixes on the Rails 4 branch, partially because the deployment on CMU is currently still on Rails 4. Please file an issue if you believe that you have found a severe bug. The Rails 4 branch can be found on master-rails-4.

We will not be backporting new features from master to master-rails-4.


We encourage you to contribute to Autolab! Please check out the Contributing to Autolab Guide for guidelines about how to proceed. Join us!


Autolab is released under the Apache License 2.0.

Using Autolab

Please feel free to use Autolab at your school/organization. If you run into any problems, you can reach the core developers at and we would be happy to help. On a case by case basis, we also provide servers for free. (Especially if you are an NGO or small high-school classroom)


v2.5.0 (2020/02/22) Upgrade from Rails 4 Rails 5

  • Autolab has been upgraded from Rails 4 to Rails 5 after almost a year of effort! There are still some small bugs to be fixed, but it should not affect the core functionality of Autolab. Please file an issue if you believe you have found a bug.

v2.4.0 (2020/02/08) Speedgrader - The new code viewer

  • The File Tree shows file hierarchy of student’s submission
    • Click on a file to open
    • Click on a folder to expand
  • The Symbol Tree allows you to jump quickly to functions in the student’s code
    • Click on a function to jump
  • You can easily switch between submissions and files
    • Up/down arrow keys change file
    • Right/left arrow keys change submission
  • How to use new annotation system:
    • Make annotations with grade adjustments
    • Important: annotations can only be made for non-autograded problems (to preserve the original autograded score of the autograded problem)
    • Annotations grade changes summarized by the Annotations table on the right
  • New: Score for problem automatically updates after annotation score changes based on the following formula (this no longer has to be done manually on the Gradebook):

score = max_score + ∑(annotation score changes)

  • For example, a way to grade style in a deductive manner would be to set the max score for the Style problem, and make annotations with negative score for style violations and zero score for good style

UI Enhancements

  • Tables are more standardized
  • Fixed text overflowing issues on Gradebook modals
  • Improved standardization and UI for annotations on PDF submissions


  • Course assistants are now able to submit assignments early
You can’t perform that action at this time.