Autolab
Course management service that enables auto-graded programming assignments.
Install / Use
/learn @autolab/AutolabREADME
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.
<p> <a href="https://communityinviter.com/apps/autolab/autolab-project" style="float:left"> <img src="public/images/join_slack.svg" width="170px" height="44px"> </a> <a href="https://docs.autolabproject.com/" style="float:left"> <img src="public/images/read_the_docs.svg" width="170px" height="44px"> </a> <a href="https://groups.google.com/g/autolabproject" style="float:left"> <img src="public/images/mailing_list.svg" width="170px" height="44px"> </a> </p>Subscribe to our mailing list to receive announcements about major releases and updates to the Autolab Project.
Try It Out
We have a demo site running at https://nightly.autolabproject.com/. See the docs for more information on how to log in and suggestions on things to try.
Installation
We released new documentation! Check it out here.
Testing
Setting up Tests
-
Add a test database in
database.yml -
Create and migrate the database.
RAILS_ENV=test bundle exec rails autolab:setup_test_envDo not forget to use
RAILS_ENV=test bundle execin front of every rake/rails command. -
Create necessary directories.
mkdir tmp/
Running Tests
After setting up the test environment, simply run spec by:
bundle exec rails spec
You may need to run RAILS_ENV=test bundle exec rails autolab:setup_test_env when re-running tests as some tests
may create models in the database.
You can also run individual spec files by running:
rake spec SPEC=./spec/<path_to_spec>/<spec_file>.rb
Rails 5 Support
Autolab is now running on Rails 6. The Rails 5 branch can be found on master-rails-5.
We will not be backporting any new features from master to master-rails-5, and we have discontinued Rails 5 support.
Updating Docs
To install mkdocs, run
pip install --user mkdocs
We rely on the mkdocs-material theme, which can be installed with
pip install --user mkdocs-material
To run and preview this locally, run:
python3 -m mkdocs serve
Once your updated documentation is in master, Jenkins will automatically run a job to update the docs. You can trigger a manual update with
python3 -m mkdocs gh-deploy
This will build the site using the branch you are currently in (hopefully master), place the built HTML files into the gh-pages branch, and push them to GitHub. GitHub will then automatically deploy the new content in gh-pages.
Contributing
We encourage you to contribute to Autolab! Please check out the Contributing to Autolab Guide for guidelines about how to proceed. You can reach out to us on Slack as well.
License
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 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)
Changelog
v3.0.0 (2024/07/24) UI-based deployment configuration, Simple File Manager, Export / Import Course, Tango, Grading Improvements
- Configuration of authentication, Github, SMTP moved to UI
- Simple File Manager to manage files in courses through a UI
- Import / Export Course data in one go, with improved assessment importing
- Improvements to grading UI/UX such as an improved Gradebook, Code Diff Viewer, Starred Problems
- Improvements to autograding with direct Docker file uploading and the option to selectively disable network access
v2.12.0 (2024/01/20) Attachment categories and visual cues
- Ruby upgraded to 3.2.2
- Rails upgraded to 6.1.7.6
- Instructors can now specify a category and "release at" date for attachments
- Assessment start / end dates are now shown on course homepages
v2.11.0 (2023/05/21) LTI Settings UI, extensions metrics, and simultaneous extension creation
- Introduced UI to manage LTI integration settings
- Added extension metrics for instructors to monitor students by number of extensions granted
- Instructors can now create extensions for multiple students at once
v2.10.0 (2023/01/13) LTI Integration, Generalized Feedback, and Streaming Output
- Autolab now supports roster syncing with courses on Canvas and other LTI (Learning Tools Interoperability) services. For full instructions on setup, see the documentation.
- Streaming partial output and new feedback interface
- Generalized annotations
For older releases, please check out the releases page.
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
research_rules
Research & Verification Rules Quote Verification Protocol Primary Task "Make sure that the quote is relevant to the chapter and so you we want to make sure that we want to have it identifie
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
