Decomposing the Doer Effect in Programming Practice: Code Writing Stands Out Among Active Practice
2026-08-03 • Software Engineering
Software EngineeringHuman-Computer Interaction
AI summaryⓘ
The authors studied how different types of practice activities affect learning in computer science classes. They found that doing active practice helps students learn better than just watching or reading. Among the active types, writing code by yourself was linked to the biggest improvement in test scores. This suggests practicing by actually writing code, especially with feedback, is especially helpful for learning programming.
doer effectactive practicecode writingcode tracingcode completioncomputer science educationlearning outcomesinteractive practice systems
Authors
Arun Balajiee Lekshmi Narayanan, Gillian Gold, Jordan Barria-Pineda, Quinn K Wolter, Peter Brusilovsky, Paulo Carvalho
Abstract
The "doer effect" suggests that actively doing practice activities is more strongly associated with learning outcomes than passively viewing content. In the doer effect literature, "doing" refers specifically to active practice. However, this categorization treats different forms of active practice as equivalent, leaving open whether some types of active practice are more effective than others. In this paper, we investigate whether the doer effect extends to computer science instruction and whether some forms of doing stand out compared to other forms. We analyze log data from 334 students across 11 semesters of introductory and intermediate Java who used an interactive practice system with five content types: Code Writing, Code Tracing, Code Completion, Code Visualizations, and Code Explanations. Consistent with prior doer effect work, we find that active practice activities were associated with 3.2 times better learning outcomes than passive activities. Interestingly, among the active practice, code writing was the most strongly associated with improved posttest performance, while no other activity type showed a comparable association. These results highlight the importance of challenging, feedback-supported practice activities, such as code writing problems.