Abstract
A qualitative analysis of debugging strategies of novice Java programmers is presented. The study involved 21 CS2 students from seven universities in the U.S. and U.K. Subjects "warmed up" by coding a solution to a typical introductory problem. This was followed by an exercise debugging a syntactically correct version with logic errors. Many novices found and fixed bugs using strategies such as tracing, commenting out code, diagnostic print statements and methodical testing. Some competently used online resources and debuggers. Students also used pattern matching to detect errors in code that "just didn't look right". However, some used few strategies, applied them ineffectively, or engaged in other unproductive behaviors. This led to poor performance, frustration for some, and occasionally the introduction of new bugs. Pedagogical implications and suggestions for future research are discussed.
- M. Ahmadzadeh, D. Elliman and C. Higgins. Novice programmers: An analysis of patterns of debugging among novice computer science students. Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education (ITiCSE), pp. 84--88, 2005. Google ScholarDigital Library
- M. Ducasse and A.-M. Emde. A review of automated debugging systems: knowledge, strategies and techniques. In Proceedings of the 10th international conference on Software engineering, 162--171, 1988. Google ScholarDigital Library
- S. Fitzgerald, B. Simon and L. Thomas. Strategies that students use to trace code: an analysis based in grounded theory. In Proceedings of the 2005 international workshop on Computing education research (ICER), pp. 69--80, 2005. Google ScholarDigital Library
- S. Fitzgerald, G. Lewandowski, R. McCauley, L. Murphy, B. Simon, L. Thomas and C. Zander. Debugging: Finding, Fixing and Flailing -A multi-institutional study of novice debuggers. Forthcoming in Computer Science Education - Special Issue on Debugging, 18(2), June 2008.Google Scholar
- Gould. Some psychological evidence on how people debug computer programs. International J. of Man-Machine Studies, 7(1), pp. 151--182, 1975.Google ScholarCross Ref
- L. Gugerty and G. Olson. Debugging by skilled and novice programmers. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Boston, MA, April 13-17, pp. 171--174, 1986. Google ScholarDigital Library
- I. Katz and J. Anderson. Debugging: An analysis of bug location strategies. Human-Computer Interaction, 3(4):351--399, 1987.Google ScholarDigital Library
- C. Kessler and R. Anderson. A model of novice debugging in LISP, in Soloway, E. & Iyengar, S. (Eds.) Empirical Studies of Programmers: First Workshop, (pp. 198--212). Norwood, NJ: Ablex Publishing Corporation, 1986. Google ScholarDigital Library
- McCartney, A. Eckerdal, J.E. Moström, K. Sanders, and C. Zander. Successful students' strategies for getting unstuck. ACM SIGCSE Bulletin, Proceedings of the 12th annual SIG-CSE conference on Innovation and technology in computer sci. education (ITiCSE). Vol 39, Issue 3, pp. 156--160, 2007. Google ScholarDigital Library
- McCauley, S. Fitzgerald, G. Lewandowski, L. Murphy, B. Simon, L. Thomas and C. Zander. Debugging: A review of the literature from an educational perspective. Forthcoming in Computer Science Education -- Special Issue on Debugging, 18(2), June 2008.Google Scholar
- Nanja and C.R. Cook. An analysis of the on-line debugging process. In G. Olson, S. Sheppard and E. Soloway, (Eds.) Empirical Studies of Programmers: Second Work-shop, pp. 172--184, 1987. Google ScholarDigital Library
- Perkins and F. Martin. Fragile Knowledge and Neglected Strategies in Novice Programmers. In E. Soloway and S. Iyengar (Eds), Empirical Studies of Programmers: First workshop. Ablex, NJ, USA. pp. 213--229, 1986. Google ScholarDigital Library
- Vessey. Expertise in debugging computer pro-grams: A process analysis. International J. of Man-Machine Studies, 23, pp. 459--494, 1985.Google ScholarCross Ref
Index Terms
- Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies
Recommendations
Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies
SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science educationA qualitative analysis of debugging strategies of novice Java programmers is presented. The study involved 21 CS2 students from seven universities in the U.S. and U.K. Subjects "warmed up" by coding a solution to a typical introductory problem. This was ...
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 ...
What constitutes debugging? An exploratory study of debugging episodes
AbstractWhen debugging, developers engage in activities such as navigating, editing, testing, and inspecting code. Despite being the building blocks of debugging, little is known about how they constitute debugging. To address this gap, we introduce the ...
Comments