ABSTRACT
Debugging is an important component of software development, yet most novice programmers are not explicitly taught to apply systematic strategies or processes for debugging. In this paper we adapt a framework developed for teaching troubleshooting to the debugging domain, and explore how the literature on teaching debugging maps to this framework. We identify debugging processes that are fundamental for novices to learn, aspects of debugging that novices typically struggle to develop, and shortcomings of tools designed to support teaching of debugging.
- Marzieh Ahmadzadeh, Dave Elliman, and Colin Higgins. 2005. An analysis of patterns of debugging among novice computer science students. ACM SIGCSE Bulletin 37, 3 (2005), 84--88. Google ScholarDigital Library
- Elizabeth Emily Carter. 2014. An intelligent debugging tutor for novice computer science students. Ph.D. Dissertation. Lehigh University.Google Scholar
- McCoy Sharon Carver and Sally Clarke Risinger. 1987. Improving children's debugging skills. In Proceedings of the Second Workshop on Empirical Studies of Programmers. Ablex Publishing Corp., Norwood, NJ, USA, 147--171. Google ScholarDigital Library
- M. Ducassé and A.-M. Emde. 1988. A review of automated debugging systems: knowledge, strategies and techniques. In Proceedings of the 10th International Conference on Software Engineering (ICSE '88). IEEE Computer Society Press, Los Alamitos, CA, USA, 162--171. http://dl.acm.org/citation.cfm?id=55823.55841 Google ScholarDigital Library
- Sue Fitzgerald, Gary Lewandowski, Renee McCauley, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education 18, 2 (2008), 93--116.Google ScholarCross Ref
- Sue Fitzgerald, Renée McCauley, Brian Hanks, Laurie Murphy, Beth Simon, and Carol Zander. 2010. Debugging from the student perspective. IEEE Transactions on Education 53, 3 (2010), 390--396. Google ScholarDigital Library
- John D Gould. 1975. Some psychological evidence on how people debug computer programs. International Journal of Man-Machine Studies 7, 2 (1975), 151--182.Google ScholarCross Ref
- John D Gould and Paul Drongowski. 1974. An exploratory study of computer program debugging. Human Factors 16, 3 (1974), 258--277.Google ScholarCross Ref
- Lindsey Ann Gouws, Karen Bradshaw, and Peter Wentworth. 2013. Computational thinking in educational activities: an evaluation of the educational game Light-Bot. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education. ACM, New York, NY, USA, 10--15. Google ScholarDigital Library
- Leo Gugerty and Gary Olson. 1986. Debugging by skilled and novice programmers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '86). ACM, New York, NY, USA, 171--174. Google ScholarDigital Library
- William B Johnson, William C Entwistle, and Karen S Gaddis. 1982. Development and demonstration of a laboratory tool for research in the design of games for training of troubleshooting skills. Technical Report. Illinois University at Urbana-Champaign Savoy Aviation Research Lab.Google Scholar
- David H Jonassen and Woei Hung. 2006. Learning to troubleshoot: a new theory-based design architecture. Educational Psychology Review 18, 1 (2006), 77--114.Google ScholarCross Ref
- Irvin R Katz and John R Anderson. 1987. Debugging: an analysis of bug-location strategies. Human-Computer Interaction 3, 4 (1987), 351--399. Google ScholarDigital Library
- Cagin Kazimoglu et al. 2013. Empirical evidence that proves a serious game is an educationally effective tool for learning computer programming constructs at the computational thinking level. Ph.D. Dissertation. University of Greenwich.Google Scholar
- David Klahr and Sharon McCoy Carver. 1988. Cognitive objectives in a LOGO debugging curriculum: instruction, learning, and transfer. Cognitive Psychology 20, 3 (1988), 362--404.Google ScholarCross Ref
- Amruth N. Kumar. 2002. Model-based reasoning for domain modeling in a web-based intelligent tutoring system to help students learn to debug C++ programs. In Intelligent Tutoring Systems, Stefano A. Cerri, Guy Gouardères, and Fàbio Paraguaçu (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 792--801. Google ScholarDigital Library
- Mikko-Jussi Laakso, Lauri Malmi, Ari Korhonen, Teemu Rajala, Erkki Kaila, and Tapio Salakoski. 2008. Using roles of variables to enhance novice's debugging work. Issues in Informing Science and Information Technology 5 (2008), 281--295.Google ScholarCross Ref
- Greg C Lee and Jackie C Wu. 1999. Debug it: a debugging practicing system. Computers & Education 32, 2 (1999), 165--179. Google ScholarDigital Library
- Michael Jong Lee. 2015. Teaching and engaging with debugging puzzles. Ph.D. Dissertation. University of Washington.Google Scholar
- Michael J Lee, Faezeh Bahmani, Irwin Kwan, Jilian LaFerte, Polina Charters, Amber Horvath, Fanny Luor, Jill Cao, Catherine Law, Michael Beswetherick, Sheridan Long, Margaret Burnett, and Andrew J. Ko. 2014. Principles of a debugging-first puzzle game for computing education. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 57--64.Google Scholar
- Yu-Tzu Lin, Cheng-Chih Wu, Ting-Yun Hou, Yu-Chih Lin, Fang-Ying Yang, and Chia-Hu Chang. 2016. Tracking students' cognitive processes during program debugging---An eye-movement approach. IEEE Transactions on Education 59, 3 (2016), 175--186.Google ScholarCross Ref
- Zhongxiu Liu, Rui Zhi, Andrew Hicks, and Tiffany Barnes. 2017. Understanding problem solving behavior of 6-8 graders in a debugging game. Computer Science Education 27, 1 (2017), 1--29.Google ScholarCross Ref
- Andrew Luxton-Reilly, Emma McMillan, Elizabeth Stevenson, Ewan Tempero, and Paul Denny. 2018. Ladebug: an online tool to help novice programmers improve their debugging skills. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018). ACM, New York, NY, USA, 159--164. Google ScholarDigital Library
- Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail Giannakos, Amruth N. Kumar, Linda Ott, James Paterson, Michael James Scott, Judy Sheard, and Claudia Szabo. 2018. A review of introductory programming research 2003-2017. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018). ACM, New York, NY, USA, 342--343. Google ScholarDigital Library
- Renee McCauley, Sue Fitzgerald, Gary Lewandowski, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: a review of the literature from an educational perspective. Computer Science Education 18, 2 (2008), 67--92.Google ScholarCross Ref
- Michael A Miljanovic. 2015. RoboBUG: a game-based approach to learning debugging techniques. Master's thesis. University of Ontario Institute of Technology.Google Scholar
- Laurie Murphy, Gary Lewandowski, Renée McCauley, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: the good, the bad, and the quirky---a qualitative analysis of novices' strategies. ACM SIGCSE Bulletin 40, 1 (2008), 163--167. Google ScholarDigital Library
- Beth Simon, Dennis Bouvier, Tzu-Yi Chen, Gary Lewandowski, Robert McCartney, and Kate Sanders. 2008. Common sense computing (episode 4): debugging. Computer Science Education 18, 2 (2008), 117--133.Google ScholarCross Ref
- Ross C Teague and John A Allen. 1997. The reduction of uncertainty and troubleshooting performance. Human Factors 39, 2 (1997), 254--267.Google ScholarCross Ref
- Abdallah Tubaishat. 2001. A knowledge base for program debugging. In ACS/IEEE International Conference on Computer Systems and Applications. IEEE, 321--327. Google ScholarDigital Library
- Iris Vessey. 1985. Expertise in debugging computer programs: a process analysis. International Journal of Man-Machine Studies 23, 5 (1985), 459--494.Google ScholarCross Ref
- Min Xie and Bo Yang. 2003. A study of the effect of imperfect debugging on software development cost. IEEE Transactions on Software Engineering 29, 5 (May 2003), 471--473. Google ScholarDigital Library
- Byung-Do Yoon and Oscar N Garcia. 1998. Cognitive activities and support in debugging. In Proceedings of the Fourth Annual Symposium on Human Interaction with Complex Systems. IEEE, 160--169. Google ScholarDigital Library
- Andreas Zeller. 2009. Why programs fail: a guide to systematic debugging (2nd ed.). Morgan Kaufmann, San Francisco, California: Oxford. Google ScholarDigital Library
Index Terms
- Towards a Framework for Teaching Debugging
Recommendations
Debugging: from novice to expert
We conducted a study to demonstrate that formal training in debugging helps students develop skills in diagnosing and removing defects from computer programs. To accomplish this goal in an assembly language course, we designed multiple activities to ...
Teaching Students a Systematic Approach to Debugging: (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationThis lightning talk presents new free, online material to provide new programmers with a solid foundation in debugging. Nearly every instructor who teaches programming notices that students have weak debugging skills. Faced with a failing program, many ...
How Do You Teach Debugging?: Resources and Strategies for Better Student Debugging (Abstract Only)
SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education"Why doesn't my code work?" Instructors and TAs hear this question day in and day out during introductory computer science courses, and beyond. Students arguably have a harder time learning how to debug their own (and others') code than they do in ...
Comments