Litcius/Paper detail

Computational thinking in early childhood education: The impact of programming a tangible robot on developing debugging knowledge

Anastasia Misirli, Vassilis Komis

2023Early Childhood Research Quarterly49 citationsDOIOpen Access PDF

Abstract

The present study investigates the debugging process of 526 children in preschool (4–6 aged) when programming a tangible robot. When a child is involved in programming, it is needed to identify and correct errors, or in other words, debug a program. Debugging is a high-level thinking skill and is an essential component closely related to developing Computational Thinking in early childhood education. Though the debugging process is a cognitive function in programming investigated by many researchers in recent decades, most studies are conducted either in primary, secondary education, or higher education concerning beginners or experts in programming. Very few reviews, and some focus on preschool education. Our study set out the following objectives: 1) How do children identify the existence of error and locate it? 2) What types of errors emerge when coding? 3) What type of error is complex for novice programmers? 4) What strategies are developed by novice programmers to debug effectively? and 5) What types of knowledge do novice programmers construct by debugging the tangible robot Bee-Bot? The study follows an iterative model of a design-based research approach. It uses multiple case studies to collect qualitative and quantitative data. The programming intervention was implemented by 30 educators in their classrooms and was based on a scenario-based teaching design. The debugging process was analysed using Klahr & Craven's framework (1988): 1) test and evaluate program, 2) identify bug, 3) represent program, 4) locate bug and 5) correct bug. The main finding is the construction and development of syntactic and semantic knowledge.

Topics & Concepts

DebuggingComputer scienceAlgorithmic program debuggingConstruct (python library)Computational thinkingProcess (computing)Software engineeringProgramming languageHuman–computer interactionArtificial intelligenceTeaching and Learning ProgrammingSoftware Testing and Debugging Techniques