skip to main content
10.1145/3286960.3286970acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesaus-ceConference Proceedingsconference-collections
research-article

Towards a Framework for Teaching Debugging

Published:29 January 2019Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. Elizabeth Emily Carter. 2014. An intelligent debugging tutor for novice computer science students. Ph.D. Dissertation. Lehigh University.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarCross RefCross Ref
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. John D Gould and Paul Drongowski. 1974. An exploratory study of computer program debugging. Human Factors 16, 3 (1974), 258--277.Google ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. Irvin R Katz and John R Anderson. 1987. Debugging: an analysis of bug-location strategies. Human-Computer Interaction 3, 4 (1987), 351--399. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarCross RefCross Ref
  18. Greg C Lee and Jackie C Wu. 1999. Debug it: a debugging practicing system. Computers & Education 32, 2 (1999), 165--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Michael Jong Lee. 2015. Teaching and engaging with debugging puzzles. Ph.D. Dissertation. University of Washington.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarCross RefCross Ref
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarCross RefCross Ref
  26. Michael A Miljanovic. 2015. RoboBUG: a game-based approach to learning debugging techniques. Master's thesis. University of Ontario Institute of Technology.Google ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarCross RefCross Ref
  29. Ross C Teague and John A Allen. 1997. The reduction of uncertainty and troubleshooting performance. Human Factors 39, 2 (1997), 254--267.Google ScholarGoogle ScholarCross RefCross Ref
  30. Abdallah Tubaishat. 2001. A knowledge base for program debugging. In ACS/IEEE International Conference on Computer Systems and Applications. IEEE, 321--327. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Iris Vessey. 1985. Expertise in debugging computer programs: a process analysis. International Journal of Man-Machine Studies 23, 5 (1985), 459--494.Google ScholarGoogle ScholarCross RefCross Ref
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. Andreas Zeller. 2009. Why programs fail: a guide to systematic debugging (2nd ed.). Morgan Kaufmann, San Francisco, California: Oxford. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Towards a Framework for Teaching Debugging

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      ACE '19: Proceedings of the Twenty-First Australasian Computing Education Conference
      January 2019
      131 pages
      ISBN:9781450366229
      DOI:10.1145/3286960

      Copyright © 2019 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 29 January 2019

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      ACE '19 Paper Acceptance Rate15of36submissions,42%Overall Acceptance Rate161of359submissions,45%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader