While automated grading systems are useful for generating real-time feedback for students, they also highlight some obstacles. In particular, when a student's program contains bugs, automated systems report this fact, but not how to locate or correct them. This paper reports on a study inspired by current research on automatic fault localization — techniques to programmatically locate bugs within a piece of code under test. The goal is not to "identify" or diagnose the bug, but simply to locate where it is in the code, to give the student a direction to investigate. Before employing this technique live with students, this study validates that automated fault localization can be performed with the level of accuracy needed to give meaningful guidance. We used the GZoltar statistical fault localization library for Java to analyze 135 CS2-level student programs, and then manually debugged the programs to find the locations of their faults. This paper provides the analysis of this information, which produced a feasible strategy for providing accurate, automated suggestions to students for "where to look" in order to fix their own programs.
['Bob Edmison', 'Stephen H. Edwards']
Applying spectrum-based fault localization to generate debugging suggestions for student programmers