This paper presents a series of four experiments investigating students' debugging of LISP programs. The experiments involve a population of subjects who know LISP reasonably well and whose errors are best classified as slips (Brown & Van Lehn, 1980). That is, students are unlikely to repeat the same errors either within their program or across programs (Experiment 1). That the students understand LISP is also reflected in their debugging behavior: students can usually fix a bug once they locate it. Students' difficulties are instead in locating the errorful line of code. We observe that students use a variety of bug-location strategies during debugging (Experiment 2) and that the choice of strategy differs depending on whether students are debugging their own programs or other students' programs (Experiment 3). In addition, we observe that although the different bug-location strategies affect which lines of a program are searched, once students decide on a line, their ability to judge whether or not the line is correct and their ability to correct an error are not substantially affected by the strategy being used to locate the line (Experiment 4). Finally, we argue that our results have implications not only for debugging in other computer languages, but for the general processes involved in troubleshooting as well.
/lp/association-for-computing-machinery/debugging-an-analysis-of-bug-location-strategies-abstract-only-sz0YAk8fCU