Automatic Grading and Feedback using Program Repair for Introductory Programming Courses

Sagar Parihar,Ziyaan Dadachanji,Praveen Kumar Singh,Rajdeep Das,Amey Karkare,Arnab Bhattacharya
DOI: https://doi.org/10.1145/3059009.3059026
2017-06-28
Abstract:We present GradeIT, a system that combines the dual objectives of automated grading and program repairing for introductory programming courses (CS1). Syntax errors pose a significant challenge for testcase-based grading as it is difficult to differentiate between a submission that is almost correct and has some minor syntax errors and another submission that is completely off-the-mark. GradeIT also uses program repair to help in grading submissions that do not compile. This enables running testcases on submissions containing minor syntax errors, thereby awarding partial marks for these submissions (which, without repair, do not compile successfully and, hence, do not pass any testcase). Our experiments on 15613 submissions show that GradeIT results are comparable to manual grading by teaching assistants (TAs), and do not suffer from unintentional variability that happens when multiple TAs grade the same assignment. The repairs performed by GradeIT enabled successful compilation of 56% of the submissions having compilation errors, and resulted in an improvement in marks for 11% of these submissions.
What problem does this paper attempt to address?