Debugging is integral to programming. It comes into play as soon as novices make their first mistakes in creating programming artifacts. It is also consistently reported to be a skill that is difficult to learn as well as to teach effectively. Research in Informatics Education has often focused on the process of debugging, by breaking it down in steps connected by temporal and causal dependencies. In this work, we focus instead on debugging as a skill, from the standpoint of Cognitive Load Theory, and break it down into a tree-shaped model of subskills that enable one another. Debugging may thus be seen as a meta-skill that requires the coordination of multiple others. From the standpoint of Cognitive Load Theory, such a skill is cognitively expensive, which may explain the learning-related difficulties tied to debugging. Using the framework of the four-component instructional design, we hypothesize a categorization of each debugging subskill as either recurrent or nonrecurrent, dividing those that are applied consistently to different contexts from those that require problem solving. All subskills may be practised and potentially assessed with targeted exercises, whose design depends on their recurrent/nonrecurrent nature. We provide extensive examples of such exercises. Our decomposition of debugging into subskills is a novel way to address debugging in educational contexts and complements the work done on debugging processes. Although it is currently a theoretically grounded conjecture, the model provides concrete guidance for instructors on analyzing existing materials and planning cognitive-load-informed learning trajectories.
Source code comments are usually treated in software engineering as documentation artifacts that support readability, maintainability, and long-term comprehension. In programming education, however, comments may also function as pedagogical scaffolds by helping learners externalize reasoning, clarify intent, and reflect on code. This article presents a PRISMA-informed qualitative systematic review with layered evidence on the pedagogical role of source code comments in programming education. Searches in Scopus and ERIC produced 50 unique records; 36 were assessed in detail and resolved into 18 primary synthesis studies, 7 supporting/contextual studies, and 11 advanced-stage exclusions. Because the evidence base is heterogeneous, the review uses qualitative layered synthesis rather than meta-analysis. The findings suggest that comments are best understood pedagogically as explanation-centered learning supports, especially for code comprehension, self-explanation, debugging and reflective reasoning, and formative assessment of student thinking. Direct comment-focused evidence remains limited and concentrated mainly in highereducation and novice programming contexts; adjacent explanation-centered studies clarify plausible mechanisms but do not by themselves establish comment-specific effects. The review concludes that comments can become pedagogically meaningful when deliberately integrated as scaffolds for explanation, comprehension, and reflection.
We investigate the pedagogical impact of Graphical Loop Invariant Based Programming (GLIBP) in an introductory programming course. This approach encourages students to visually model the objects and variables handled in the loop, before implementing it. To evaluate the efficiency of this GLI model, a four-condition A/B/C/D test was conducted across two problems, with students receiving varying levels of scaffolding (from no support to a fully constructed GLI). Analysis of students’ code showed that a well-designed GLI reduced errors related to the loop guard and the update of variables. However, many students struggled to understand or represent a GLI. The fill-in-the-blank GLI version, in particular, often added cognitive load rather than reducing it. Three recommendations emerged: train students to interpret a provided GLI when writing code; second, teach students to sketch their own model by recognizing similarities to previously solved problems; finally, guide students with questions to ensure all necessary variables and relationships are properly identified.
Education is about supporting humans in their growth, with a special focus on exploring their intellectual potential. Learning to act following a given (even complex) pattern is losing its educational value very fast, because all well described activities can be automated. Education therefore should focus on developing those cognitive process dimensions of pupils where technology cannot compete with humans (Dagienė et al. (2020), Hromkovič and Lacher (2017), Hromkovič et al. (2020)). The contribution of this paper is conceptual. In the paper we show that starting with the algorithmic view on the historical development of number representations and calculations offers a natural, more understandable way for teaching mathematics in primary schools. We show that going consequently from concrete to abstract empowers pupils to be able to design own representations of numbers, rediscover the execution of arithmetic operations on their own, and even develop elementary calculations in own designed number systems. We show here how a successful process of rediscovery of arithmetic algorithms can be designed by using classical algorithm design methods as “induction” and “divide and conquer”. We show how that algorithmic thinking can essentially contribute to improving education in mathematics.
In this article, we examine a case study of the Bachelor’s degree programme “Computer Science” at the University of Latvia. We explore several factors that enabled it to (a) obtain the European Informatics Quality Label three times, (b) be ranked first in the national employer survey as the most recommended educational Programme for nine years, and (c) adopt a student-centred approach. Using a case study methodology, we highlight several innovations that together make the Programme highly regarded both academically and in the labour market. At the end of the paper, we divide the key outcomes of the study into two sets of innovations. National-level solutions, such as learning outcome comparison and the development of industry terminology with student participation, are important primarily in the local context. Whereas (a) the framework for gaining both industry and academic experience through the Practice Course and Qualification thesis, and (b) curriculum expansion with Special Seminars and the creation of opportunities for students to acquire additional knowledge through Excellence Studies and Remedial Courses, can be transferred internationally.