skip to main content
research-article

A Think-Aloud Study of Novice Debugging

Published:08 June 2023Publication History
Skip Abstract Section

Abstract

Debugging is a core skill required by programmers, yet we know little about how to effectively teach the process of debugging. The challenges of learning debugging are compounded for novices who lack experience and are still learning the tools they need to program effectively. In this work, we report a case study in which we used a think-aloud protocol to gain insight into the behaviour of three students engaged in debugging tasks. Our qualitative analysis reveals a variety of helpful practices and barriers that limit the effectiveness of debugging. We observe that comprehension, evidence-based activities, and workflow practices all contribute to novice debugging success. Lack of sustained effort, precision, and methodical processes negatively impact debugging effectiveness. We anticipate that understanding how students engage in debugging tasks will aid future work to address ineffective behaviours and promote effective debugging activities.

REFERENCES

  1. [1] Ahmadzadeh Marzieh, Elliman Dave, and Higgins Colin. 2005. An analysis of patterns of debugging among novice computer science students. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE’05). ACM, New York, NY, 8488. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. [2] Ahmadzadeh Marzieh, Elliman Dave, and Higgins Colin. 2007. The impact of improving debugging skill on programming ability. Innovation in Teaching and Learning in Information and Computer Sciences 6, 4 (2007), 7287. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  3. [3] Allen Joe Michael, Vahid Frank, Edgcomb Alex, Downey Kelly, and Miller Kris. 2019. An analysis of using many small programs in CS1. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE’19). ACM, New York, NY, 585591. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Altadmri Amjad and Brown Neil C. C.. 2015. 37 million compilations: Investigating novice programming mistakes in large-scale student data. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE’15). ACM, New York, NY, 522527. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. [5] Alzahrani Nabeel and Vahid Frank. 2021. Common logic errors for programming learners: A three-decade literature survey. In ASEE Virtual Annual Conference Content Access. ASEE Conferences, Virtual Conference. https://peer.asee.org/36814.Google ScholarGoogle ScholarCross RefCross Ref
  6. [6] Becker Brett and Mooney Catherine. 2016. Categorizing compiler error messages with principal component analysis. In 12th China-Europe International Symposium on Software Engineering Education (CEISEE’16). https://researchrepository.ucd.ie/handle/10197/7889.Google ScholarGoogle Scholar
  7. [7] Bergin Susan, Reilly Ronan, and Traynor Desmond. 2005. Examining the role of self-regulated learning on introductory programming performance. In Proceedings of the 1st International Workshop on Computing Education Research (ICER’05). ACM, New York, NY, 8186. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Bisant David B. and Groninger Lowell. 1993. Cognitive processes in software fault detection: A review and synthesis. International Journal of Human–Computer Interaction 5, 2 (1993), 189206. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  9. [9] Bornat Richard, Dehnadi Saeed, and Simon. 2008. Mental models, consistency and programming aptitude. In Proceedings of the 10th Conference on Australasian Computing Education - Volume 78 (ACE’08). Australian Computer Society, Inc., AUS, 5361.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] Bradley A. C.. 2020. Rubber ducks and double labs: Teaching debugging strategies in a geoscience class. In AGU Fall Meeting Abstracts, Vol. 2020. Article ED011-04, ED011-04 pages.Google ScholarGoogle Scholar
  11. [11] Braun Virginia and Clarke Victoria. 2006. Using thematic analysis in psychology. Qualitative Research in Psychology 3, 2 (2006), 77101. DOI: arXiv: https://www.tandfonline.com/doi/pdf/10.1191/1478088706qp063oa.Google ScholarGoogle ScholarCross RefCross Ref
  12. [12] Braun Virginia and Clarke Victoria. 2022. Conceptual and design thinking for thematic analysis. Qualitative Psychology 9, 1 (2022), 326. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  13. [13] Caceffo Ricardo, Frank-Bolton Pablo, Souza Renan, and Azevedo Rodolfo. 2019. Identifying and validating Java misconceptions toward a CS1 concept inventory. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE’19). ACM, New York, NY, 2329. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Carter Elizabeth. 2015. Its debug: Practical results. Journal of Computing Sciences in Colleges 30, 3 (jan2015), 915.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Cavaiani Thomas P.. 1989. Cognitive style and diagnostic skills of student programmers. Journal of Research on Computing in Education 21, 4 (1989), 411420.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Chen Mei-Wen, Wu Cheng-Chih, and Lin Yu-Tzu. 2013. Novices’ debugging behaviors in VB programming. In 2013 Learning and Teaching in Computing and Engineering. 2530. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Chmiel Ryan and Loui Michael C.. 2004. Debugging: From novice to expert. ACM SIGCSE Bulletin 36, 1 (2004), 1721.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Cochran-Smith Marilyn and Lytle Susan. 1993. Inside/outside: Teacher Research and Knowledge. Teachers College Press, New York.Google ScholarGoogle Scholar
  19. [19] Dahn Maggie and DeLiema David. 2020. Dynamics of emotion, problem solving, and identity: Portraits of three girl coders. Computer Science Education 30, 3 (2020), 362389. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  20. [20] DeLiema David, Dahn Maggie, Flood Virginia J., Abrahamson Dor, Enyedy Noel, and Steen Francis. 2020. Debugging as a context for collaborative reflection on problem-solving processes. In Deeper Learning, Communicative Competence, and Critical Thinking: Innovative, Research-Based Strategies for Development in 21st Century Classrooms, Manolo E. (Ed.). Routledge, 209228.Google ScholarGoogle Scholar
  21. [21] DeLiema David, Dahn Maggie, Flood Virginia J., Asuncion Ana, Abrahamson Dor, Enyedy Noel, and Steen Francis. 2019. Debugging as a context for fostering reflection on critical thinking and emotion. In Deeper Learning, Dialogic Learning, and Critical Thinking. Routledge, 120. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  22. [22] Denny Paul, Luxton-Reilly Andrew, and Tempero Ewan. 2012. All syntax errors are not equal. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’12). ACM, New York, NY, 7580. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Du Chuntao. 2009. Empirical study on college students’ debugging abilities in computer programming. In 2009 1st International Conference on Information Science and Engineering. 33193322. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. [24] DuBoulay Bendict. 1989. Some difficulties of learning to program. In Studying the Novice Programmer, Soloway E. and Spohrer J. C. (Eds.). Number 14. Lawrence Erlbaum Associates, 283299. http://www.sussex.ac.uk/Users/bend/papers/diffsofprogramming.pdf.Google ScholarGoogle Scholar
  25. [25] Ducasse Mireille and Emde A.-M.. 1988. A review of automated debugging systems: Knowledge, strategies and techniques. In Proceedings of the 10th International Conference on Software Engineering. IEEE Computer Society Press, 162171.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Eranki Kiran L. N. and Moudgalya Kannan M.. 2014. Application of program slicing technique to improve novice programming competency in spoken tutorial workshops. In IEEE 6th International Conference on Technology for Education (T4E’14). IEEE, 3235.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Ettles Andrew, Luxton-Reilly Andrew, and Denny Paul. 2018. Common logic errors made by novice programmers. In Proceedings of the 20th Australasian Computing Education Conference (ACE’18). ACM, New York, NY, 8389. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Fitzgerald Sue, Lewandowski Gary, McCauley Renée, Murphy Laurie, Simon Beth, Thomas Lynda, and Zander Carol. 2008. Debugging: Finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education 18, 2 (2008), 93116. DOI: arXiv:.Google ScholarGoogle ScholarCross RefCross Ref
  29. [29] Fitzgerald Sue, McCauley Renée, Hanks Brian, Murphy Laurie, Simon Beth, and Zander Carol. 2010. Debugging from the student perspective. IEEE Transactions on Education 53, 3 (Aug2010), 390396. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. [30] Force CC2020 Task. 2020. Computing Curricula 2020: Paradigms for Global Computing Education. ACM, New York, NY.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. [31] Goldman Ken, Gross Paul, Heeren Cinda, Herman Geoffrey, Kaczmarczyk Lisa, Loui Michael C., and Zilles Craig. 2008. Identifying important and difficult concepts in introductory computing courses using a delphi process. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. 256260.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. [32] Grigoreanu Valentina, Brundage James, Bahna Eric, Burnett Margaret, ElRif Paul, and Snover Jeffrey. 2009. Males’ and Females’ script debugging strategies. In End-User Development, Pipek Volkmar, Rosson Mary Beth, Ruyter Boris de, and Wulf Volker (Eds.). Springer, Berlin, 205224.Google ScholarGoogle ScholarCross RefCross Ref
  33. [33] Guo Philip J.. 2013. Online Python tutor: Embeddable web-based program visualization for Cs education. In Proceedings of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13). ACM, New York, NY, 579584. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. [34] Heinonen Ava, Lehtelä Bettina, Hellas Arto, and Fagerholm Fabian. 2022. Synthesizing Research on Programmers’ Mental Models of Programs, Tasks and Concepts – a Systematic Literature Review. (2022). DOI:Google ScholarGoogle ScholarCross RefCross Ref
  35. [35] Hou Ting-Yun, Lin Yu-Tzu, Lin Yu-Chih, Chang Chia-Hu, and Yen Miao-Hsuan. 2013. Exploring the gender effect on cognitive processes in program debugging based on eye-movement analysis. In Proceedings of the 5th International Conference on Computer Supported Education. ResearchGate, 1621.Google ScholarGoogle Scholar
  36. [36] Hristova Maria, Misra Ananya, Rutter Megan, and Mercuri Rebecca. 2003. Identifying and correcting Java programming errors for introductory computer science students. SIGCSE Bulletin 35, 1 (Jan2003), 153156. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] Jayathirtha Gayithri, Fields Deborah, and Kafai Yasmin. 2020. Pair debugging of electronic textiles projects: Analyzing think-aloud protocols for high school students’ strategies and practices while problem solving. In ICLS 2020: The 14th International Conference of the Learning Sciences. International Society of the Learning Sciences (ISLS’20). https://repository.isls.org//handle/1/6292.Google ScholarGoogle Scholar
  38. [38] Curricula Association for Computing Machinery (ACM) Joint Task Force on Computing and Society IEEE Computer. 2013. Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. ACM, New York, NY.Google ScholarGoogle Scholar
  39. [39] Jonassen David H. and Hung Woei. 2006. Learning to troubleshoot: A new theory-based design architecture. Educational Psychology Review 18 (2006), 77114. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  40. [40] Kafai Yasmin B., DeLiema David, Fields Deborah A., Lewandowski Gary, and Lewis Colleen. 2019. Rethinking debugging as productive failure for CS education. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE’19). ACM, New York, NY, 169170. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] Katz Irvin R. and Anderson John R.. 1987. Debugging: An analysis of bug-location strategies. Human– Computer Interaction 3, 4 (Dec.1987), 351399. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. [42] Kennedy Cazembe and Kraemer Eileen T.. 2018. What are they thinking? Eliciting student reasoning about troublesome concepts in introductory computer science. In Proceedings of the 18th Koli Calling International Conference on Computing Education Research (Koli Calling’18). ACM, New York, NY, Article 7, 10 pages. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. [43] Kessler Claudius M. and Anderson John R.. 1986. Learning flow of control: Recursive and iterative procedures. Human– Computer Interaction 2, 2 (Jun1986), 135166. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. [44] Kidder Louise H. and Fine Michelle. 1987. Qualitative and quantitative methods: When stories converge. New Directions for Program Evaluation 1987, 35 (1987), 5775. DOI: arXiv: https://onlinelibrary.wiley.com/doi/pdf/10.1002/ev.1459.Google ScholarGoogle ScholarCross RefCross Ref
  45. [45] Kiran E. L. N. and Moudgalya K. M.. 2015. Evaluation of programming competency using student error patterns. In 2015 International Conference on Learning and Teaching in Computing and Engineering. 3441. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Ko Amy. 2020. The CS-Ed Podcast. (2020). Retrieved March 17, 2020 from https://sites.duke.edu/csedpodcast/2020/01/07/episode-3-amy/.Google ScholarGoogle Scholar
  47. [47] Ko Amy J., LaToza Thomas D., Hull Stephen, Ko Ellen A., Kwok William, Quichocho Jane, Akkaraju Harshitha, and Pandit Rishin. 2019. Teaching explicit programming strategies to adolescents. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE’19). ACM, New York, NY, 469475. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] LaToza Thomas D., Arab Maryam, Loksa Dastyni, and Ko Amy J.. 2020. Explicit programming strategies. Empirical Software Engineering 25, 4 (2020), 24162449.Google ScholarGoogle ScholarCross RefCross Ref
  49. [49] Lawrance Joseph, Bogart Christopher, Burnett Margaret, Bellamy Rachel, Rector Kyle, and Fleming Scott D.. 2013. How programmers debug, revisited: An information foraging theory perspective. IEEE Transactions on Software Engineering 39, 2 (2013), 197215. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Lee Greg C. and Wu Jackie C.. 1999. Debug it: A debugging practicing system. Computers & Education 32, 2 (1999), 165179.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. [51] Lee Michael Jong. 2015. Teaching and engaging with debugging puzzles. Ph.D. Dissertation. University of Washington.Google ScholarGoogle Scholar
  52. [52] Lewis Colleen M.. 2012. The importance of students’ attention to program state: A case study of debugging behavior. In Proceedings of the 9th Annual International Conference on International Computing Education Research (ICER’12). ACM, New York, NY, 127134. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Li Chen, Chan Emily, Denny Paul, Luxton-Reilly Andrew, and Tempero Ewan. 2019. Towards a framework for teaching debugging. In Proceedings of the 21st Australasian Computing Education Conference (ACE’19). ACM, New York, NY, 7986.Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. [54] Lin Y., Wu C., Hou T., Lin Y., Yang F., and Chang C.. 2016. Tracking students’ cognitive processes during program debugging–an eye-movement approach. IEEE Transactions on Education 59, 3 (Aug2016), 175186. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. [55] Liu Zhongxiu, Zhi Rui, Hicks Andrew, and Barnes Tiffany. 2017. Understanding problem solving behavior of 6–8 graders in a debugging game. Computer Science Education 27, 1 (2017), 129. DOI: arXiv:.Google ScholarGoogle ScholarCross RefCross Ref
  56. [56] Lobb Richard and Harlow Jenny. 2016. Coderunner: A tool for assessing computer programming skills. ACM Inroads 7, 1 (Feb2016), 4751. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Loksa Dastyni and Ko Amy J.. 2016. The role of self-regulation in programming problem solving process and success. In Proceedings of the 2016 ACM Conference on International Computing Education Research (ICER’16). ACM, New York, NY, 8391. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Loksa Dastyni, Margulieux Lauren, Becker Brett A., Craig Michelle, Denny Paul, Pettit Raymond, and Prather James. 2021. Metacognition and self-regulation in programming education: Theories and exemplars of use. ACM Transactions on Computing Education (Dec2021). DOI:Just Accepted.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Loksa Dastyni, Xie Benjamin, Kwik Harrison, and Ko Amy J.. 2020. Investigating novices’ in situ reflections on their programming process. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (SIGCSE’20). ACM, New York, NY, 149155. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Luxton-Reilly Andrew, McMillan Emma, Stevenson Elizabeth, Tempero Ewan, and Denny Paul. 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’18). ACM, New York, NY, 159164. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Ma Linxiao, Ferguson John, Roper Marc, and Wood Murray. 2007. Investigating the viability of mental models held by novice programmers. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’07). ACM, New York, NY, 499503. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Markel Julia M. and Guo Philip J.. 2021. Inside the Mind of a CS Undergraduate TA: A Firsthand Account of Undergraduate Peer Tutoring in Computer Labs. ACM, New York, NY, 502508. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] McCall Davin. 2016. Novice Programmer Errors - Analysis and Diagnostics. Ph.D. Dissertation. University of Kent. https://kar.kent.ac.uk/61340/.Google ScholarGoogle Scholar
  64. [64] McCall Davin and Kölling Michael. 2019. A new look at novice programmer errors. ACM Transactions on Computing Education 19, 4, Article 38 (jul2019), 30 pages. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] McCauley Renee, Fitzgerald Sue, Lewandowski Gary, Murphy Laurie, Simon Beth, Thomas Lynda, and Zander Carol. 2008. Debugging: A review of the literature from an educational perspective. Computer Science Education 18, 2 (2008), 6792.Google ScholarGoogle ScholarCross RefCross Ref
  66. [66] Metzger Robert Charles. 2004. Debugging by Thinking: A Multidisciplinary Approach. Elsevier Digital Press.Google ScholarGoogle Scholar
  67. [67] Miljanovic Michael A. and Bradbury Jeremy S.. 2017. RoboBUG: A serious game for learning debugging techniques. In Proceedings of the 2017 ACM Conference on International Computing Education Research. ACM, 93100.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. [68] Morales-Navarro L., Fields D. A., and Kafai Y. B.. 2021. Growing mindsets: Debugging by design to promote students’ growth mindset practices in computer science class. In Proceedings of the 15th International Conference of the Learning Sciences (ICLS’21), Vries E. de, Hod Y., and Ahn J. (Eds.). https://par.nsf.gov/biblio/10309425.Google ScholarGoogle Scholar
  69. [69] Murphy Laurie, Fitzgerald Sue, Hanks Brian, and McCauley Renée. 2010. Pair debugging: A transactive discourse analysis. In Proceedings of the 6th International Workshop on Computing Education Research (ICER’10). ACM, New York, NY, 5158. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. [70] Murphy Laurie, Lewandowski Gary, McCauley Renée, Simon Beth, Thomas Lynda, and Zander Carol. 2008. Debugging: The good, the bad, and the quirky – a qualitative analysis of novices’ strategies. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’08). ACM, New York, NY, 163167. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] O’Dell Devon H.. 2017. The debugging mindset. Queue 15, 1 (Feb.2017), 7190. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. [72] Perkins D. N. and Martin Fay. 1986. Fragile knowledge and neglected strategies in novice programmers. In 1st Workshop on Empirical Studies of Programmers on Empirical Studies of Programmers. 213229.Google ScholarGoogle Scholar
  73. [73] Prather James, Pettit Raymond, McMurry Kayla, Peters Alani, Homer John, and Cohen Maxine. 2018. Metacognitive difficulties faced by novice programmers in automated assessment tools. In Proceedings of the 2018 ACM Conference on International Computing Education Research (ICER’18). ACM, New York, NY, 4150. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. [74] Pritchard David. 2015. Frequency distribution of error messages. In Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU’15). ACM, New York, NY, 18. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Rao S. and Kumar V.. 2008. A theory-centric real-time assessment of programming. In 2008 8th IEEE International Conference on Advanced Learning Technologies. 139143. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. [76] Rezel Elizabeth Susan. 2003. The Effect of Training Subjects in Self-explanation Strategies on Problem Solving Success in Computer Programming. Marquette University.Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. [77] Robins Anthony, Rountree Janet, and Rountree Nathan. 2003. Learning and teaching programming: A review and discussion. Computer Science Education 13 (2003), 137172.Google ScholarGoogle ScholarCross RefCross Ref
  78. [78] Ruthruff Joseph R., Prabhakararao Shrinu, Reichwein James, Cook Curtis, Creswick Eugene, and Burnett Margaret. 2005. Interactive, visual fault localization support for end-user programmers. Journal of Visual Languages & Computing 16, 1-2 (2005), 340.Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. [79] Schaafstal Alma, Schraagen Jan Maarten, and Berl Marcel van. 2000. Cognitive task analysis and innovation of training: The case of structured troubleshooting. Human Factors 42, 1 (2000), 7586. DOI: arXiv:. PMID: 10917147.Google ScholarGoogle ScholarCross RefCross Ref
  80. [80] Scott Michael J. and Ghinea Gheorghita. 2014. On the domain-specificity of mindsets: The relationship between aptitude beliefs and programming practice. IEEE Transactions on Education 57, 3 (2014), 169174. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. [81] Silva Leonardo, Mendes Antonio, Gomes Anabela, Fortes Gabriel, Lam Chan Tong, and Chan Calana. 2021. Exploring the association between self-regulation of learning and programming learning: A multinational investigation. In 2021 IEEE Frontiers in Education Conference (FIE’21). 18. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. [82] Simon, Mason Raina, Crick Tom, Davenport James H., and Murphy Ellen. 2018. Language choice in introductory programming courses at Australasian and UK universities. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE’18). ACM, New York, NY, 852857. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. [83] Smith Rebecca and Rixner Scott. 2019. The error landscape: Characterizing the mistakes of novice programmers. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE’19). ACM, New York, NY, 538544. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. [84] Soloway E.. 1986. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM 29, 9 (Sept.1986), 850858. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. [85] Subrahmaniyan Neeraja, Kissinger Cory, Rector Kyle, Inman Derek, Kaplan Jared, Beckwith Laura, and Burnett Margaret. 2007. Explaining debugging strategies to end-user programmers. In IEEE Symposium on Visual Languages and Human-Centric Computing, 2007 (VL/HCC’07). IEEE, 127136.Google ScholarGoogle Scholar
  86. [86] Thomas David and Hunt Andrew. 2019. The Pragmatic Programmer: Your Journey to Mastery. Addison-Wesley Professional.Google ScholarGoogle Scholar
  87. [87] Someren Maarten van. 1994. The think aloud method: A practical guide to modelling cognitive processes.Google ScholarGoogle Scholar
  88. [88] Veerasamy Ashok Kumar, D’Souza Daryl, and Laakso Mikko-Jussi. 2016. Identifying novice student programming misconceptions and errors from summative assessments. Journal of Educational Technology Systems 45, 1 (2016), 5073. DOI: arXiv:.Google ScholarGoogle ScholarCross RefCross Ref
  89. [89] Venigalla Akhila Sri Manasa and Chimalakonda Sridhar. 2020. G4D — A treasure hunt game for novice programmers to learn debugging. Smart Learning Environments 7, 1 (2020), 21.Google ScholarGoogle ScholarCross RefCross Ref
  90. [90] Wert Ethan, Grifski Jeremy, Luo Sijia, and Atiq Zahra. 2021. A multi-modal investigation of self-regulation strategies adopted by first-year engineering students during programming tasks. In Proceedings of the 17th ACM Conference on International Computing Education Research (ICER’21). ACM, New York, NY, USA, 446447. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. [91] Whalley Jacqueline, Settle Amber, and Luxton-Reilly Andrew. 2021. Analysis of a process for introductory debugging. In Australasian Computing Education Conference (ACE’21). ACM, New York, NY, 1120. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. [92] Whalley Jacqueline, Settle Amber, and Luxton-Reilly Andrew. 2021. Novice reflections on debugging. In Proceedings of the 52nd ACM Technical Symposium on Computer Science Education (SIGCSE’21). ACM, New York, NY, 7379. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. [93] Xie Benjamin, Nelson Greg L., and Ko Amy J.. 2018. An explicit strategy to scaffold novice program tracing. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE’18). ACM, New York, NY, 344349. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. [94] Yen Ching-Zon, Wu Ping-Huang, and Lin Ching-Fang. 2012. Analysis of experts’ and novices’ thinking process in program debugging. In Engaging Learners Through Emerging Technologies, Li Kam Cheong, Wang Fu Lee, Yuen Kin Sun, Cheung Simon K. S., and Kwan Reggie (Eds.). Springer, Berlin, 122134.Google ScholarGoogle ScholarCross RefCross Ref
  95. [95] Zeller Andreas. 2009. Why Programs Fail: A Guide to Systematic Debugging. Elsevier.Google ScholarGoogle Scholar

Index Terms

  1. A Think-Aloud Study of Novice 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

    Full Access

    • Published in

      cover image ACM Transactions on Computing Education
      ACM Transactions on Computing Education  Volume 23, Issue 2
      June 2023
      364 pages
      EISSN:1946-6226
      DOI:10.1145/3587033
      • Editor:
      • Amy J. Ko
      Issue’s Table of Contents

      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: 8 June 2023
      • Online AM: 30 March 2023
      • Accepted: 10 March 2023
      • Revised: 4 March 2023
      • Received: 31 May 2022
      Published in toce Volume 23, Issue 2

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    View Full Text

    HTML Format

    View this article in HTML Format .

    View HTML Format