Novice Debugging Challenges
• Abstract, Hidden Code: Research consistently shows that programming’s abstract nature makes it
hard for beginners. Dacey (2018) observes that “abstract thinking is a core component of
programming and a difficult skill for novice programmers to develop” 1 . Lai et al. (2025) similarly
note that “many beginners struggle with understanding program logic and execution flow” 2 . With
code execution invisible, novices often can’t follow how changes affect the program, making bugs
hard to find. Debugging — a fundamental part of programming — is therefore “challenging to learn
and teach” 3 ; newcomers typically lack strategies and spend significantly more time locating errors
3 . One classic study found that providing visual program execution (e.g. animated traces)
dramatically helped novices: after simply seeing their code run step-by-step, 84% of bugs were fixed
quickly, leading the author to conclude that “program visualization is the key to novice
debugging” 4 .
Programming Anxiety and Retention
• Anxiety Harms Outcomes: These cognitive challenges lead to stress. Many CS students perceive
programming as “complicated and intimidating” 5 . Pan and Harun (2025) report that programming
anxiety impairs educational outcomes by reducing student engagement, performance, and retention
6 . In fact, their systematic review found that high anxiety “harms learning outcomes and may lead
to lower course completion rates” 7 . Other studies echo this: programming courses often have
high dropout and failure rates 5 . This confirms that stress around unseen code execution can
shake confidence and contribute to novice attrition. Indeed, one broad survey of CS courses
identified “lack of confidence” as a major struggle factor, persisting even beyond introductory classes
8 .
Visualization and Game-Based Interventions
• Making Logic Visible: Empirical work shows that interactive, visual tools mitigate these problems.
For example, Lai et al. (2025) developed a system (PVLS) that generates dynamic flowcharts from
student-written C code. In a controlled study, novices using PVLS saw significant gains: total test
scores and programming performance both improved (p < .001 and p = .014) after the intervention
9 . Students valued PVLS’s real-time execution tracking, and the authors conclude it helped
enhance debugging skills 9 . This aligns with older findings that visual execution aids debugging.
• Narrative & Game-Based Learning: Story-driven games can also boost debugging ability and
confidence. Straubinger et al. (2025) introduced “Sojourner under Sabotage,” a narrative game
where students fix sabotaged spaceship code. An initial evaluation found that students found the
game “enjoyable and educationally valuable,” with measurable improvements in test coverage,
debugging performance, and motivation compared to traditional methods 10 . Similarly, other
studies note that game-like, interactive environments make abstract code tangible. For instance,
Barnes et al. (2008) report that coding games significantly increase student motivation, and lead to
“robust and deeper conceptual understanding” of programming concepts 11 . Pan & Harun also
1
highlight that using “creative programming platforms such as block-based environments,
storytelling platforms, and Sonic Pi” engages learners in novel ways that mitigate anxiety 12 . In
practice, they recommend user-friendly IDEs and collaborative exercises (e.g. pair programming) to
reduce stress 13 .
Key Findings (Evidence)
• Mental Models: Novices struggle because code execution is hidden; they lack viable mental models
1 2 .
• Emotional Impact: This invisibility breeds fear. Programming is often seen as “complicated and
intimidating,” leading to high anxiety and poor retention 5 6 .
• Visualization Helps: Studies show that making code flow visible dramatically aids learning. Visual
execution traces or flowcharts let students directly observe program behavior and fix bugs more
effectively 4 9 .
• Gamification Boosts Engagement: Narrative games and interactive tools increase engagement and
confidence. For example, a story-driven debugging game yielded measurable gains in skill and
motivation 10 , and block/storytelling platforms are shown to “significantly reduce programming
anxiety” 13 12 .
• Overall: The evidence suggests that reducing abstraction—by visualizing program logic and framing
debugging in an interactive, guided way—can directly address beginners’ difficulties. Tools that
externalize code structure and execution help novices form accurate mental models, lowering
anxiety and improving debugging performance 9 10 .
1 A Study of Novice Programmer Performance and Programming Pedagogy
[Link]
2 Development and evaluation of a dynamic code visualization system for C programming education:
9
The PVLS approach - ScienceDirect
[Link]
3 11G4D - a treasure hunt game for novice programmers to learn debugging | Smart Learning
Environments | Springer Nature Link
[Link]
4 (PDF) Debugging: A review of the literature from an educational perspective
[Link]
5 Microsoft Word - Yıldırım & Özdener [Link]
[Link]
6 7 12 13 Conquering Coding Fears: A Systematic Review of Programming Anxiety in Higher Education
[Link]
8 Understanding Sources of Student Struggle in Early Computer Science Courses
[Link]
10 Teaching Software Testing and Debugging with the Serious Game Sojourner under Sabotage
[Link]