Abstract
We report on responses to a series of four questions designed to identify pre-existing abilities related to debugging and troubleshooting experiences of novice students before they begin programming instruction. The focus of these questions include general troubleshooting, bug location, exploring unfamiliar environments, and describing students' real life troubleshooting experiences. We find that the common sense experience of students related to debugging is often at odds with the needs for debugging programs. Student troubleshooting experiences recognize real world non-determinism and rarely require undoing an attempted fix. Based on student answers, we shed light on some specific frustrations of instructors and make a set of recommendations for teaching, including addressing the difference between finding an error and fixing it, modeling the formation of multiple hypotheses, and encouraging students to apply domain knowledge.
Acknowledgements
We thank Tammy Van de Grift, Renee McCauley, and Sara Miner More for gathering data for us. We also thank Jan Erik Moström and Umeå University for support of the VoIP system we used for our weekly collaborative meetings. Thanks are also due to Sally Fincher, Josh Tenenberg, Marian Petre, and the National Science Foundation for starting us down this path. This material is based upon work supported in part by the National Science Foundation under grant no. DUE-0243242, “Scaffolding research in computer science education.” Any opinions, findings, and conclusions or recommendations are those of the authors and do not necessarily reflect the views of the National Science Foundation.