AutoFeedback
AutoFeedback is an open-source web-based application that I originally developed to support the teaching of the first-year CS1OOP Object-Oriented Programming module at Aston University, where students learn programming from scratch using the Java language. Students complete weekly programming labs in order to practice the concepts taught in lectures and discussed in tutorials, and their work is integrated into a portfolio which contributes to their final mark.
In the first year, students started at Aston with a broad range of prior experience, with some students having done A-levels in computing or having developed software as a hobby for some time, and other students having no previous coding experience at all. AutoFeedback was designed to reduce the learning curve for submitting code and obtaining feedback as much as possible, without requiring the use of version control systems and continuous integration pipelines: students can submit their code from Eclipse or IntelliJ in two clicks, using a custom Maven plugin, and AutoFeedback integrates with their university credentials via LDAP.
AutoFeedback uses automated unit tests to drive the feedback process, relying on test frameworks which produce JUnit-style XML files (an informal schema is available here). Educators can define custom feedback templates with conditional Markdown blocks that will be rendered when the test passes, fails, or produces output matching certain conditions.
AutoFeedback makes heavy use of containerisation technologies (namely, Docker and Docker Compose) to simplify development and deployment, and ensure that each student submission is evaluated in its own isolated environment and run in a reproducible manner.
The source code and Docker images for AutoFeedback are available from its official website.