Abstract
Background and Context: Multiple studies report that experienced instructors lack consensus on the difficulty of programming tasks for novices. However, adequately gauging task difficulty is needed for alignment: to select and structure tasks in order to assess what students can and cannot do. Objective: The aim of this study was to examine perceived and observed difficulties that novice programmers endure during code composition. Method: This study reports on the in-depth research combining multi-faceted data from observations to students’ perceptions via interviews, think aloud, task ranking and task rating. Findings: Some interesting findings were observed which would not have been revealed through solution analysis on its own. For example, that nesting two loops is perceived as easier than nesting a selection in a loop and that the abstraction mechanism of an enhanced for loop makes it a particularly challenging concept to initially grasp. Implications: Our results augment related work, which are primarily based on instructors’ perceptions, providing insights into difficulties endured by novice programmers and recommendations for task (de)composition and curricular alignment.
Original language | English |
---|---|
Pages (from-to) | 414-441 |
Number of pages | 28 |
Journal | Computer Science Education |
Volume | 34 |
Issue number | 3 |
Early online date | 24 Jan 2023 |
DOIs | |
Publication status | Published - 2024 |
Keywords
- Programming assessment
- code composition
- conceptual knowledge
- difficulty
- novice
- strategic knowledge