🤖 AI Summary
This study investigates the longitudinal evolution of programming errors among CS2 beginners to characterize how error types change over time and to derive pedagogical implications. Method: Over one semester, 710 authentic programming assignment errors from novice learners were manually annotated and clustered using an enhanced error taxonomy distinguishing syntactic, semantic, and logical errors. Contribution/Results: Syntactic and semantic errors decline rapidly early in learning, whereas logical errors persist at high frequency with stable morphological patterns—indicating rapid acquisition of language syntax but prolonged deficits in conceptual modeling and algorithmic reasoning. These findings challenge the conventional assumption that programming difficulties stem primarily from unfamiliarity with programming language constructs. Instead, they highlight persistent cognitive bottlenecks in problem decomposition, abstraction, and logical expression. The results provide empirical grounding for diagnosing instructional barriers and designing targeted interventions—such as scaffolded algorithmic thinking exercises and domain-specific debugging scaffolds—to address foundational computational thinking gaps.
📝 Abstract
Background: Programming is a fundamental skill in computer science and software engineering specifically. Mastering it is a challenge for novices, which is evidenced by numerous errors that students make during programming assignments. Objective: In our study, we want to identify common programming errors in CS2 courses and understand how students evolve over time. Method: To this end, we conducted a longitudinal study of errors that students of a CS2 course made in subsequent programming assignments. Specifically, we manually categorized 710 errors based on a modified version of an established error framework. Result: We could observe a learning curve of students, such that they start out with only few syntactical errors, but with a high number of semantic errors. During the course, the syntax and semantic errors almost completely vanish, but logical errors remain consistently present. Conclusion: Thus, students have only little trouble with learning the programming language, but need more time to understand and express concepts in a programming language.