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.
We released new documentation! Check it out here.
-
Add a test database in
database.yml
-
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. -
Create necessary directories.
mkdir attachments/ tmp/
After setting up the test environment, simply run spec by:
bundle exec rake spec
We are currently in the process of migrating Autolab to Rails 5.1 and Ruby
2.6.1. The relevant branch is rails-5-upgrade
. All discovered UI breakages have been
fixed and preliminary integration testing with Tango has been successful. If
there are any discovered issues, please file an issue.
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.
Please feel free to use Autolab at your school/organization. If you run into any problems, you can reach the core developers at autolab-dev@andrew.cmu.edu
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)