How is Everyone Doing? Automatic Project Feedback and Monitoring for Programming Courses
In introductory programming courses, the demand for direct interaction between students and instructors far exceeds the supply. Students need feedback about where to concentrate effort when working on projects, and instructors need information about where students are having problems in order to make the best use of time in lectures and office hours.
We have implemented an automatic project snapshot, submission, and testing system, called Marmoset, which provides project status feedback to students and instructors. Students may submit intermediate versions of their projects, and get feedback about how close their work is to satisfying the project objectives. Marmoset uses a novel incentive system which rewards students for working on their project early, and encourages them to think critically about their work. Instructors have access to complete test results for all student submissions, as well as fine-grained code snapshots recording the evolution of each student's project. This information informs instructors of the progress of individual students and the class as a whole.