Investigating the Use of Productive Failure as a Design Paradigm for Learning Introductory Python Programming
Hussel Suriyaarachchi, Paul Denny, Suranga Nanayakkara

TL;DR
This study explores the application of Productive Failure in teaching Python lists, demonstrating improved retention and reduced cognitive load through an innovative sensor-based learning activity.
Contribution
It introduces a novel PF-based activity incorporating wearable sensors to measure cognitive load, providing empirical validation in programming education.
Findings
PF improved long-term retention and performance
Students showed decreased cognitive load over time
Sensor data enhanced engagement and measurement accuracy
Abstract
Productive Failure (PF) is a learning approach where students initially tackle novel problems targeting concepts they have not yet learned, followed by a consolidation phase where these concepts are taught. Recent application in STEM disciplines suggests that PF can help learners develop more robust conceptual knowledge. However, empirical validation of PF for programming education remains under-explored. In this paper, we investigate the use of PF to teach Python lists to undergraduate students with limited prior programming experience. We designed a novel PF-based learning activity that incorporated the unobtrusive collection of real-time heart-rate data from consumer-grade wearable sensors. This sensor data was used both to make the learning activity engaging and to infer cognitive load. We evaluated our approach with 20 participants, half of whom were taught Python concepts using…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
