🤖 AI Summary
This study addresses the challenge in CS1 education where students, relying on generative AI that often produces correct code, exhibit diminished motivation to engage in code review and debugging. To counter this, the authors introduce an innovative approach that injects executable, realistic bugs into otherwise correct AI-generated code and leverages naturally occurring prompt failures to establish a dual-path learning mechanism centered on prompt refinement and code repair. Analysis of 2,636 coding sessions from 917 students reveals that bug injection significantly enhances direct code repair efforts and improves subsequent task success rates, while prompt failures primarily drive iterative prompt optimization. Students consistently reported heightened code comprehension, stronger review habits, and a deeper awareness of the limitations inherent in generative AI systems.
📝 Abstract
As Generative AI (GenAI) becomes increasingly central to software development, CS education is integrating prompt-centered workflows where students describe intended program behavior in natural language to elicit code. However, professional practice requires careful review and verification of GenAI-generated code that may appear correct while containing subtle faults. This creates a challenge for CS1-level activities, where current models often solve tasks correctly and reduce students' incentive to closely inspect generated outputs. We investigate how prompt-centered programming activities can be adapted to better foster these practices. Specifically, we explore an approach where realistic, runnable bugs are injected into otherwise correct solutions, thus requiring students to read and repair generated outputs. We analyzed 2,636 sessions from 917 students, and examined behavior across instances of naturally occurring prompt-related failures and deliberately injected bugs within each session. Our findings show that students responded differently across bug sources. Deliberately injected bugs more often led to direct code edits and higher next-attempt success, suggesting localized repair of near-miss solutions. Prompt-related failures instead more often led students to refine prompts by clarifying constraints, updating function signatures, adding edge cases, or reframing the task. Student reflections reinforce the emphasis on review and repair, describing useful practice in code understanding, code review, and debugging, as well as a more careful verification mindset and greater awareness of GenAI limitations. Ultimately, prompt-related failures and injected bugs together support a pedagogically useful GenAI workflow, where students practice both specification refinement through prompts and debugging through code editing.