Supporting Novice Learners' Coding through Productive Failure-Based Debugging Activities

Sagun Giri · Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2 · 2022

Debugging is a crucial yet time consuming and frustrating part of software programming. However, debugging training has not been widely included in computer science curriculum. Debugging processes have been left to novices to figure out through repeated practice. However, research shows that novices are more likely to develop "bad" debugging processes. Novices add high frequency errors and fixate on first solutions without attention to overall code comprehension, error location and hypothesis testing. This paper argues that engaging students in Productive Failure (PF) Learning Design can be an effective approach to reinforce effective debugging processes in novice programmers. Ten high school students without prior experience engaged in an online programming workshop. They worked on debugging problems on Scratch without prior instruction and then engaged in scaffolded knowledge assembly and practice sessions. Analytic induction was utilized to identify and report 2 salient cases highlighting divergent approaches in the troubleshooting process and students' understanding of computational concepts. Findings showed that productive failure-based learning designs can introduce frustration and complexity that, when well designed and reinforced, can aid learners' comprehension and effective future troubleshooting efforts. In the absence of initial instruction and scaffolding, this design allowed students to generate sub-optimal codes that helped refine their programming logic, aided error reduction and understanding of foundational computational concepts in subsequent debugging attempts when coupled with knowledge assembly sessions.

Read the paper · More papers on PaperTik