A case-based reasoning approach to providing feedback to novice programmers - Dimaunahan, Ryan S. (Animo Repository, 2015)
Adaptive feedback contains information that individual users of a system will find helpful rather than cryptic. A case-based reasoning (CBR) approach to automatic feedback generation can provide feedback that is timely and adaptive; however, such an approach generally needs a sufficiently populated case base. In this paper, we describe a pedagogical programming tool called CBR-C that uses a CBR based approach to give meaningful and adaptive feedback to students learning C programming language for the first time. CBR-C generates multiple levels of feedback depending on the number of cases in its case base and the required remediation of the student, and is able to give feedback despite having insufficient cases in it case base. Experiments for evaluation the feedback generation capability of CBR-C were conducted with students learning to program in C for the first time. These students were assigned to control and experimental groups, and each student was instructed to submit solutions to a programming problem incrementally until the student finally gets a correct answer, i.e., a C program that meets all the given programming requirements. The improvement in code quality of each submission was then determined to see whether the feedback generated by CBR-C had any effect on the code of the students. The improvement in code quality of the students who used CBR-C was greater, with mild statistical significance, than those who did not, indicating that receiving feedback from CBR-C regarding one’s program is better than not receiving any feedback at all, at least as far as students learning C for the first time are concerned.