Autolab is a course management service at CMU that enables instructors to offer programming labs to their students over the Internet. 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.
Autograding. Each time a student submits their work, the system autogrades it on a secure Linux virtual machine, and stores the results in a gradebook. Autograders and the programs they evaluate can be written in any language and use any software packages. The model for a traditional programming class is that students work on their code, hand it in once, and then get feedback a week or two later, at which point they've already moved on to the next assignment. Autograding, on the other hand, allows students to get immediate feedback on their performance.
Scoreboard. The latest autograded scores for each student are displayed, rank ordered, on a real-time scoreboard. The scoreboard is a fun and powerful motivation for students. When coupled with autograding, it creates a sense of community and a healthy competition that seems to benefit everyone. Students anonymize themselves on the scoreboard by giving themselves nicknames. A mix of curiosity and competitiveness drives the stronger students to be at the top of the scoreboard, and all students have a clear idea of what they need for full credit. In our experience, everyone wins.
Interested in using Autolab for your CMU course? Here are the instructions.
This is the Autolab project page. Click here to go to the CMU Autolab courses that you are enrolled in.
Complete info on the system. Includes an Instructor Guide, Lab Author Guide, Developer Guide, and a detailed Reference Guide.
Each semester, Autolab serves over 2,500 CMU students in many different courses. In a typical semester it autogrades over 100K jobs. We're still actively developing the system, and we hope to eventually make it available to other schools.
02-713: Algs and Data Structs for Scientists |
10-601: Machine Learning | f13| s14
10-601a: Machine Learning | s14
10-605: Machine Learning with Large Datasets | s14
10-701: Machine Learning | s14
15-110: Principles of Computing | f10| s11| m11| s12| f12| s13| f13| s14
15-112: Fundamentals of Programming | f11| s12| m12| f12| s13| m13| f13
15-112q: Fundamentals of Programming (Qatar) | f13
15-121: Introduction to Data Structures | f13| s14
15-122: Imperative Programming | s12| m12| f12| s13| m13 | f13| s14
15-122q: Imperative Programming (Qatar) | s13| s14
Companies recruiting at CMU use Autolab for various programming contests:Citadel Programming Contest | f13
Tom Abraham: Lead developer, graduated May, 2013, currently at Yelp.
Daniel Bucci: Front-end developer, leading the upgrade to Rails 4, and working on the UI redesign.
Ilter Canberk: Managing Autolab3 beta deployment and public web page refresh.
Ian Huang: Front-end developer, working on the UI redesign.
Yashas Kumar: Back-end developer, building a new RESTful autograding service on AWS.
Dave O'Hallaron: Faculty lead.
Mihir Pandya: Back-end developer, building a new RESTful autograding service on AWS.
An Wu: Front-end developer, adding external authentication to the front-end.
Jimmy Zong: Front-end developer, creating an open-source distribution of the Autolab service.