Submitty is an open source programming assignment submission system with secure and automated testing, automated grading, and efficient manual TA/instructor grading & overall course grades management. Submitty was launched by the Rensselaer Center for Open Source Software (RCOS).
The Submitty project is hosted on GitHub. https://github.com/Submitty/
Key Features
- Secure testing of many languages: Python, C/C++, Java, Scheme, Prolog, SPIM, and anything available on GNU / Linux!
- Customizable automated grading with immediate feedback to students
- Advanced grading tools: static analysis, JUnit, code coverage, memory debuggers, etc.
- Student upload by drag-and-drop, zip upload, or version control
- Correct mistakes through multiple submissions, flexible ``late day’’ policy, hidden tests
- Interface for complementary instructor/TA manual grading, overall grade summaries
- Instructors have full access to logs for debugging, launch batch regrading
- Scales to multiple courses with thousands of students
- Supports multiple instructors and TAs per course
- Open-source, free to use, install on your own hardware, or VPS
- Discussion forum
- Plagiarism Detection
In the Fall 2017 term, Submitty was used by 1800+ students in 14 different courses in the RPI Computer Science department. The largest class, Computer Science I, had more than 700 students. The courses using Submitty cover the full spectrum of the computer science undergraduate and graduate curriculum from introductory programming courses, intermediate and advanced theory courses, popular junior/senior electives with team programming projects and written report projects, and specialized advanced topics cross-listed as graduate courses.
Submitty was presented at ACM SIGCSE 2017 in March 2017 and subsequently successfully used by instructors for courses at 3 other universities in Fall 2017. Submitty will be presenting both a demo and posters at SIGCSE 2018 and aims to expand to more users.
- Twitter: Applicants should have at least 2 semesters of college level programming coursework (or equivalent). Experience with web design, scripting languages like bash and/or python, version control (git), linux/unix, and virtual machines is valuable but not required. Students with prior experience in advanced topics such as databases, user interface design and user survey evaluation, static program analysis, system security and website/system penetration testing, and distributed computing will be qualified to work on our more advanced projects.
Students should submit a resume with their current and prior coursework, and short descriptions of any large software or software-related projects undertaken as part of a course or as a non-academic project. Prior work experience related to software should also be included.
Applicants should review the list of proposed projects and specify their interest in one or more of these projects. Students should also browse our list of open issues on Github, specifically those tagged "good first issue" and indicate 2-5 issues they find interesting.
Finally, interested applicants are encouraged to download and install the Submitty source code as a virtual machine on their own computer (http://submitty.org/developer/vm_install_using_vagrant). Submitting comments or questions on an open issue or preparing a new pull request to address one of the smaller open issues will demonstrate aptitude and interest in the Submitty project.