An Investigation Into Secondary School Students' Debugging Behaviour in Python
By: Laurie Gale, Sue Sentance
Potential Business Impact:
Helps kids learn to fix computer code better.
Background and context: Debugging is a common and often frustrating challenge for beginner programmers. Understanding students' debugging processes can help us identify the difficulties and misunderstandings they possess. However, we currently have limited knowledge of how secondary students debug in a text-based language, a medium through which millions of students will learn to program in the future. Objectives: In this paper, we investigate the debugging behaviour of K-12 students learning a text-based programming language, as part of an effort to shape how to effectively teach debugging to these students. Method: We collected log data from 73 students attempting a set of debugging exercises using an online code editor. We inductively analysed these logs using qualitative content analysis, generating a categorisation of the debugging behaviours observed. Findings: A range of behaviours were exhibited by students, skewed towards being ineffective. Most students were able to partially locate errors but often struggled to resolve them, sometimes introducing additional errors in the process. We argue that students struggling to debug possess fragile knowledge, a lens through which we view the results. Implications: This paper highlights some of the difficulties K-12 learners have when debugging in a text-based programming language. We argue, like much related work, that effective debugging strategies should be explicitly taught, while ineffective strategies should be discouraged.
Similar Papers
The Hands-Up Problem and How to Deal With It: Secondary School Teachers' Experiences of Debugging in the Classroom
Computers and Society
Helps teachers teach kids how to fix code.
PRIMMDebug: A Debugging Teaching Aid For Secondary Students
Human-Computer Interaction
Helps kids learn to fix computer code better.
An Exploratory Eye Tracking Study on How Developers Classify and Debug Python Code in Different Paradigms
Software Engineering
Finds which code styles make programs harder to understand.