[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3361721.3361724acmotherconferencesArticle/Chapter ViewAbstractPublication PageswipsceConference Proceedingsconference-collections
research-article

Improving Debugging Skills in the Classroom: The Effects of Teaching a Systematic Debugging Process

Published: 23 October 2019 Publication History

Abstract

Debugging code is a central skill for students but also a considerable challenge when learning to program: helplessness and, in consequence, frustration when confronted with errors is a common phenomenon in the K12 classroom. Debugging is distinct from general programming abilities, therefore it should be taught explicitly. Despite this, debugging is an underrepresented topic in the classroom as well as in computer science education research, as only few studies, materials and concepts discuss the explicit teaching of debugging. Consequently, novices are often left on their own in developing debugging skills. This paper analyses the effectiveness of explicitly teaching a systematic debugging process, especially with regard to the students' self-efficacy and the resulting debugging performance. To this end, we developed an intervention, piloted it and then examined it in a pre-post-control-group-test-design: Both experimental and control groups were surveyed using a questionnaire and given debugging exercises as a pre-test. Afterward, the intervention was carried out in the experimental group, while the control group continued to work on debugging exercises. During the post-test, the students once more worked on debugging exercises and were surveyed. The results show a significant increase in both self-efficacy expectations and debugging performance in the experimental group in contrast to the control group. Therefore, our study provides empirical arguments for explicitly teaching debugging and simultaneously offers a hands-on approach for the classroom.

References

[1]
Marzieh Ahmadzadeh, Dave Elliman, and Colin Higgins. 2005. 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 '05) 37, 3 (2005), 84--88.
[2]
Carl Martin Allwood and Carl-Gustav Björhag. 1990. Novices' debugging when programming in Pascal. International Journal of Man-Machine Studies 33, 6 (1990), 707--724.
[3]
Carl Martin Allwood and Carl-Gustav Björhag. 1991. Training of Pascal novices' error handling ability. Acta Psychologica 78, 1-3 (1991), 137--150.
[4]
Amjad Altadmri and Neil CC Brown. 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. ACM, New York, NY, USA, 522--527.
[5]
Albert Bandura. 1982. Self-efficacy mechanism in human agency. American psychologist 37, 2 (1982), 122.
[6]
Axel Böttcher, Veronika Thurner, Kathrin Schlierkamp, and Daniela Zehetmeier. 2016. Debugging students' debugging process. In 2016 IEEE Frontiers in Education Conference (FIE). IEEE, Erie, PA, USA, 1--7.
[7]
Neil CC Brown, Sue Sentance, Tom Crick, and Simon Humphreys. 2014. Restart: The resurgence of computer science in UK schools. ACM Transactions on Computing Education (TOCE) 14, 2 (2014), 9.
[8]
McCoy Sharon Carver and Sally Clarke Risinger. 1987. Improving children's debugging skills. In Empirical studies of programmers: Second workshop. Ablex Publishing Corp., Norwood, NJ, USA, 147--171.
[9]
Ryan Chmiel and Michael C Loui. 2004. Debugging: from Novice to Expert. Proceedings of the 35th SIGCSE technical symposium on Computer science education - SIGCSE '04 36, 1 (2004), 17.
[10]
Jacob Cohen. 1988. Statistical power analysis for the behavioural sciences. Hillsdale, NJ: erlbaum, New York, NY, USA.
[11]
Mireille Ducasse 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. IEEE Computer Society Press, Piscataway, NJ, USA, 162--171.
[12]
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.
[13]
David J Gilmore. 1991. Models of debugging. Acta psychologica 78, 1-3 (1991), 151--172.
[14]
John D. Gould. 1975. Some psychological evidence on how people debug computer programs. International Journal of Man-Machine Studies 7, 2 (1975), 151--182.
[15]
Leo Gugerty and G. Olson. 1986. Debugging by skilled and novice programmers. ACM SIGCHI Bulletin 17, 4 (1986), 171--174.
[16]
Morgan Hall, Keri Laughter, Jessica Brown, Chelynn Day, Christopher Thatcher, and Renee Bryce. 2012. An empirical study of programming bugs in CS1, CS2, and CS3 homework submissions. Journal of Computing Sciences in Colleges 28, 2 (2012), 87--94.
[17]
Maria Hristova, Ananya Misra, Megan Rutter, and Rebecca Mercuri. 2003. Identifying and correcting Java programming errors for introductory computer science students. ACM SIGCSE Bulletin 35, 1 (2003), 153--156.
[18]
W Lewis Johnson, Elliot Soloway, Benjamin Cutler, and Steven Draper. 1983. Bug catalogue: I. Yale University Press, New Haven, CT, USA.
[19]
Irvin R. Katz and John R. Anderson. 1987. Debugging: An Analysis of Bug-Location Strategies. Human-Computer Interaction 3, 4 (1987), 351--399.
[20]
Claudius M Kessler and John R Anderson. 1986. A model of novice debugging in LISP. In Proceedings of the First Workshop on Empirical Studies of Programmers. Ablex Publishing Corp., Norwood, NJ, USA, 198--212.
[21]
Andrew J Ko and Brad A Myers. 2005. A framework and methodology for studying the causes of software errors in programming systems. Journal of Visual Languages & Computing 16, 1-2 (2005), 41--84.
[22]
Essi Lahtinen, Kirsti Ala-Mutka, and Hannu-Matti Järvinen. 2005. A study of the difficulties of novice programmers. Acm Sigcse Bulletin 37, 3 (2005), 14--18.
[23]
Renée 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.
[24]
Tilman Michaeli and Ralf Romeike. 2019. Current Status and Perspectives of Debugging in the K12 Classroom: A Qualitative Study. In 2019 IEEE Global Engineering Education Conference (EDUCON). IEEE, Dubai, VAE, 1030--1038.
[25]
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. In ACM SIGCSE Bulletin. ACM, Portland, OR, USA, 163--167.
[26]
David N Perkins, Chris Hancock, Renee Hobbs, Fay Martin, and Rebecca Simmons. 1986. Conditions of learning in novice programmers. Journal of Educational Computing Research 2, 1 (1986), 37--55.
[27]
Michael Perscheid, Benjamin Siegmund, Marcel Taeumel, and Robert Hirschfeld. 2017. Studying the advancement in debugging practice of professional software developers. Software Quality Journal 25, 1 (2017), 83--110.
[28]
Christopher Peterson, Steven F Maier, and Martin E P Seligman. 1993. Learned helplessness: A theory for the age of personal control. Oxford University Press, New York, NY, USA.
[29]
Björn Rasch, Malte Friese, Wilhelm Hofmann, and Ewald Naumann. 2010. Quantitative Methoden 2: Einführung in die Statistik für Psychologen und Sozialwissenschaftler (3., erweiterte Auflage). (2010).
[30]
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.
[31]
Diomidis Spinellis. 2018. Modern debugging: the art of finding a needle in a haystack. Commun. ACM 61, 11 (2018), 124--134.
[32]
James C Spohrer and Elliot Soloway. 1986. Novice mistakes: Are the folk wisdoms correct? Commun. ACM 29, 7 (1986), 624--632.
[33]
James G Spohrer and Elliot Soloway. 1986. Analyzing the high frequency bugs in novice programs. In Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers. Ablex Publishing Corp., Norwood, NJ, USA, 230--251.
[34]
Iris Vessey. 1985. Expertise in Debugging Computer Programs: Situation-Based versus Model-Based Problem Solving. International Conference on Information Systems (ICIS) 18 (1985), 18.
[35]
Aman Yadav, Ninger Zhou, Chris Mayfield, Susanne Hambrusch, and John T Korb. 2011. Introducing Computational Thinking in Education Courses. In Proceedings of the 42Nd ACM Technical Symposium on Computer Science Education (SIGCSE '11). ACM, New York, NY, USA, 465--470.
[36]
Andreas Zeller. 2009. Why programs fail: a guide to systematic debugging. Morgan Kaufmann, Burlington, MA, USA.

Cited By

View all
  • (2024)The Impact of Large Language Models on Programming Education and Student Learning OutcomesApplied Sciences10.3390/app1410411514:10(4115)Online publication date: 13-May-2024
  • (2024)Debugging in Computational Thinking: A Meta-analysis on the Effects of Interventions on Debugging SkillsJournal of Educational Computing Research10.1177/0735633124122779362:4(1087-1121)Online publication date: 20-Jan-2024
  • (2024)Decoding Debugging Instruction: A Systematic Literature Review of Debugging InterventionsACM Transactions on Computing Education10.1145/369065224:4(1-44)Online publication date: 5-Sep-2024
  • Show More Cited By

Index Terms

  1. Improving Debugging Skills in the Classroom: The Effects of Teaching a Systematic Debugging Process

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    WiPSCE '19: Proceedings of the 14th Workshop in Primary and Secondary Computing Education
    October 2019
    127 pages
    ISBN:9781450377041
    DOI:10.1145/3361721
    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].

    In-Cooperation

    • GI: Gesellschaft für Informatik e.V.
    • University of Glasgow: University of Glasgow

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 October 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. CS education
    2. debugging
    3. intervention study
    4. teaching practice

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    WiPSCE'19

    Acceptance Rates

    WiPSCE '19 Paper Acceptance Rate 23 of 43 submissions, 53%;
    Overall Acceptance Rate 104 of 279 submissions, 37%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)199
    • Downloads (Last 6 weeks)18
    Reflects downloads up to 03 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)The Impact of Large Language Models on Programming Education and Student Learning OutcomesApplied Sciences10.3390/app1410411514:10(4115)Online publication date: 13-May-2024
    • (2024)Debugging in Computational Thinking: A Meta-analysis on the Effects of Interventions on Debugging SkillsJournal of Educational Computing Research10.1177/0735633124122779362:4(1087-1121)Online publication date: 20-Jan-2024
    • (2024)Decoding Debugging Instruction: A Systematic Literature Review of Debugging InterventionsACM Transactions on Computing Education10.1145/369065224:4(1-44)Online publication date: 5-Sep-2024
    • (2024)Exploring the Relationship between Debugging Self-Efficacy and CASE Tools for Novice TroubleshootingProceedings of the 2024 Conference on United Kingdom & Ireland Computing Education Research10.1145/3689535.3689556(1-7)Online publication date: 5-Sep-2024
    • (2024)Systematic Debugging of Logical Errors in Source CodeProceedings of the 19th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3677619.3678105(1-4)Online publication date: 16-Sep-2024
    • (2024)Faceless Adversary, Feckless Colleague: The Many Sides of ChatGPTProceedings of the 26th Western Canadian Conference on Computing Education10.1145/3660650.3660656(1-6)Online publication date: 2-May-2024
    • (2024)Debugging Pathways: Open-Ended Discrepancy Noticing, Causal Reasoning, and InterveningACM Transactions on Computing Education10.1145/365011524:2(1-34)Online publication date: 10-May-2024
    • (2024)The Effects of Generative AI on Computing Students’ Help-Seeking PreferencesProceedings of the 26th Australasian Computing Education Conference10.1145/3636243.3636248(39-48)Online publication date: 29-Jan-2024
    • (2024)Evaluating How Novices Utilize Debuggers and Code Execution to Understand CodeProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671126(65-83)Online publication date: 12-Aug-2024
    • (2024)Exploring the Interplay of Metacognition, Affect, and Behaviors in an Introductory Computer Science Course for Non-MajorsProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671119(27-41)Online publication date: 12-Aug-2024
    • 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

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media