component skills are precisely specified and taught directly and, then, whether the skills are generally transferable once they have been learned.
We specified a model of effective debugging skill that emphasized the importance of gathering clues about a bug's identity and location for focusing one's search for bugs in program code. From two pilot studies, we have found that without explicit instruction in debugging, students do not learn debugging skills from either a structured or an unstructured course, even with 200 hours of LOGO experience. Difficulties with debugging have also been demonstrated among LOGO teachers ( Jenkins, 1986) and in the adult novice debugging literature ( Gould, 1975; Gugerty & Olson, 1986; Jeffries, 1982; Katz & Anderson, 1986; Kessler & Anderson, 1986). In our two extensive studies, we included one debugging lesson, derived directly from our debugging model, in two otherwise conventional LOGO courses and assessed students' learning and transfer of debugging skills. In these two contexts, we found that students did learn to debug effectively and that they could transfer their debugging skills to similar nonprogramming contexts. Students demonstrated better debugging strategies, took less time, and were more accurate on transfer tests of debugging in nonprogramming contexts after debugging instruction than before. Students who did not receive debugging instruction in the LOGO context did not improve on the transfer tests. In addition, among the computer students in the second study, there was a positive correlation between the amount of improvement in LOGO debugging and the amount of strategy shift on the transfer tests.
There is a striking contrast between these positive results and the largely negative results from previous studies of the transferability of high-level problem-solving skills from computer programming experience ( Garlick, 1984; McGilly et al., 1984; Mohamed, 1985; Pea, 1983). The key to our students' acquisition and transfer of debugging skills was our careful task analysis of the components of debugging skill and our explicit debugging instruction. Lehrer et al. (this volume) also provide suggestive evidence that the particular skills students learn and transfer from programming courses depends heavily on the focus of instruction in those courses. Furthermore, preliminary reports from Clements and Merriman, Littlefield et al., and Perkins (all in this volume) emphasize the importance of precise instruction regarding strategies, particularly at the metalevel. We suggest that the use of precise cognitive models of skill components, similar to the one we described for debugging, could be used as the basis for more effectively designing instruction to foster other high-level problem-solving skills in programming and nonprogramming domains.
This research was supported in part by a National Science Foundation Graduate Fellowship. The research was further supported by a grant jointly funded by the Program for Research in Teaching and Learning and the Program for Applica