Unraveling novices' code composition difficulties

Renske Weeda*, Sjaak Smetsers, Erik Barendsen

*Corresponding author for this work

Research output: Contribution to journalArticleAcademicpeer-review


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 languageEnglish
Number of pages28
JournalComputer Science Education
Early online date24 Jan 2023
Publication statusE-pub ahead of print - 24 Jan 2023


  • Programming assessment
  • code composition
  • conceptual knowledge
  • difficulty
  • novice
  • strategic knowledge


Dive into the research topics of 'Unraveling novices' code composition difficulties'. Together they form a unique fingerprint.

Cite this