Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1352135.1352191acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies

Published: 12 March 2008 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
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.
[5]
Gould. Some psychological evidence on how people debug computer programs. International J. of Man-Machine Studies, 7(1), pp. 151--182, 1975.
[6]
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.
[7]
I. Katz and J. Anderson. Debugging: An analysis of bug location strategies. Human-Computer Interaction, 3(4):351--399, 1987.
[8]
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.
[9]
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.
[10]
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.
[11]
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.
[12]
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.
[13]
Vessey. Expertise in debugging computer pro-grams: A process analysis. International J. of Man-Machine Studies, 23, pp. 459--494, 1985.

Cited By

View all
  • (2025)BugSpotter: Automated Generation of Code Debugging ExercisesProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701974(896-902)Online publication date: 12-Feb-2025
  • (2025)"Debugging: From Art to Science" A Case Study on a Debugging Course and Its Impact on Student Performance and ConfidenceProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701893(1225-1231)Online publication date: 12-Feb-2025
  • (2024)Scalable Teaching of Software Engineering Theory and Practice: An Experience ReportProceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3639474.3640053(286-296)Online publication date: 14-Apr-2024
  • Show More Cited By

Index Terms

  1. Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science education
    March 2008
    606 pages
    ISBN:9781595937995
    DOI:10.1145/1352135
    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 ACM 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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 12 March 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. debugging
    2. novice programming
    3. pedagogy
    4. strategies

    Qualifiers

    • Research-article

    Conference

    SIGCSE '08

    Acceptance Rates

    Overall Acceptance Rate 1,717 of 4,956 submissions, 35%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)186
    • Downloads (Last 6 weeks)18
    Reflects downloads up to 27 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2025)BugSpotter: Automated Generation of Code Debugging ExercisesProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701974(896-902)Online publication date: 12-Feb-2025
    • (2025)"Debugging: From Art to Science" A Case Study on a Debugging Course and Its Impact on Student Performance and ConfidenceProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701893(1225-1231)Online publication date: 12-Feb-2025
    • (2024)Scalable Teaching of Software Engineering Theory and Practice: An Experience ReportProceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3639474.3640053(286-296)Online publication date: 14-Apr-2024
    • (2024)NuzzleBug: Debugging Block-Based Programs in ScratchProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3623331(1-13)Online publication date: 20-May-2024
    • (2023)A Think-Aloud Study of Novice DebuggingACM Transactions on Computing Education10.1145/358900423:2(1-38)Online publication date: 8-Jun-2023
    • (2023)Does the Stream API Benefit from Special Debugging Facilities? A Controlled Experiment on Loops and Streams with Specific DebuggersProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00058(576-588)Online publication date: 14-May-2023
    • (2022)Competitive Debugging: Toward Contests Promoting Debugging as a SkillProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567665(172-184)Online publication date: 29-Nov-2022
    • (2022)Debugging with stack overflowProceedings of the ACM/IEEE 44th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3510456.3514147(69-81)Online publication date: 21-May-2022
    • (2022)Debugging with Stack Overflow: Web Search Behavior in Novice and Expert Programmers2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET)10.1109/ICSE-SEET55299.2022.9794240(69-81)Online publication date: May-2022
    • (2022)Read the Debug Manual: A Debugging Manual for CS1 Students2022 IEEE Frontiers in Education Conference (FIE)10.1109/FIE56618.2022.9962675(1-7)Online publication date: 8-Oct-2022
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media