The new components of the ChildProgramming method integrate a computational thinking skill such as debugging with a computational thinking learning and development strategy such as educational robotics. In the context of programming, the concept of total quality, which involves testing and debugging programs, is fundamental. Not having a clear and universal way to solve these errors has been a problem [
15,
16], considering that it has been difficult to find an adequate teaching method for all students, which generates frustration and demotivation in them to learn to program. One of these strategies is the incorporation of educational robotics [
17,
18], which suggests implementing the development of computational thinking through mathematics and robotics, and also that, together with robotics, games can be designed. The interdisciplinary work offered by educational robotics requires constant study [
19], taking advantage of the relationship it has with the development of computational thinking [
20], which implies organizing new forms of collaborative work in the classroom. Educational robotics as part of STEM education facilitates active learning and promotes reasoning, critical thinking, and motivation [
21,
22]. Below, we present these two proposals that seek to provide a solution to the problems outlined above.
3.1. ChildDebugging
Debugging in ChP has been packaged as an extension called ChildDebugging. This extension is mainly located in the cognitive dimension within ChP, although it alters some points of the ChP development cycle. The team of children needs to make an effort to understand, analyze, and appropriately respond to situations present in the tasks that require their logical reasoning, planning, and synthesis because debugging works on the concepts of computational thinking during program correction, making the cognitive dimension key.
Figure 6 shows the conceptual architecture of the new complete ChildDebugging model, showing the packages already included in ChildProgramming and the new extension in the cognitive dimension that includes the concepts, practices, strategies, and debugging resources. In addition to this, it includes the ChildProgramming support tool package, which is basically a bug repository.
ChildDebugging as a process follows the same life cycle as ChP, which is organized in three phases (pre-game, game, and post-game) and development rounds. However, ChildDebugging introduces the following extensions: The process adds to the pre-game and post-game phases, the debugging rounds as a global strategy that seeks to smoothen the process of incorporating children into ChP and where it is sought that children assimilate concepts of computational thinking through program debugging. The process links debugging practices to the activity of applying strategy within all rounds of the game phase in ChP.
Before defining the strategies and resources that will lead to the creation of ChildDebugging practices, it is important to keep in mind that a series of steps must be followed for the resolution of errors that may occur in any type of system. These steps are based on the simplified model of [
23]. This model is complemented by the one proposed by [
24] that defines four steps for optimal debugging, among which are locating the bug, classifying it, understanding it, and repairing it. Once each of the strategies has been defined, a decision is made on how to proceed with the debugging process.
Table 1 shows the classification of the strategies according to the steps within the debugging process, that is to say, in which part of the process each one of these can be located, in order to structure the three main strategies that will finally be incorporated into the debugging practices.
Below,
Table 2,
Table 3 and
Table 4 showcase the strategies incorporated in ChildDebugging. These strategies are designed to help locate, understand, and fix bugs. A strategy can be described as a plan to accomplish specific objectives under uncertain conditions. It involves setting goals, determining the necessary actions to achieve those goals, and utilizing available resources to execute those actions. In the context of ChildDebugging, a strategy refers to a set of rules or steps that children can employ to identify, comprehend, and address bugs within a program. Essentially, it serves as a roadmap for the team of children to effectively tackle bug-related challenges.
The web tool called Bug Box uses the mechanics and dynamics chosen and analyzed in the previous case studies to manage the bugs and the applications developed by the children. In case study 1, the bugs were recorded on paper. After case study 2, where the debugging practices and strategies were implemented, a web support tool was created to help increase motivation to learn, apply the debugging practices and strategies, and engage in activities related to Scratch and software development. This tool has two roles: The role of the administrator, who is in charge of managing the applications, and each application manages the bugs, and it also reports the number of bugs solved or not solved; In the student role, it is possible to access one of the registered applications and register bugs.
3.2. ChildProgramming + Educational Robotics (ER)
Educational robots can be seen as another step in the evolution of educational technology. Much of the application of robotic technology in education has focused on supporting the teaching of closely related areas, such as robot construction and programming [
25]. However, robotics has a potential impact on learning in STEM areas [
25], on cognitive development, and also on the development of research skills, creative thinking, decision-making, problem-solving, communication, and teamwork skills [
26], all of which are very much in tune with the guidelines of computational thinking. Accordingly, the Japan Robotics Association, the United Nations Economic Commission, and the International Federation of Robotics have evidenced a recent and considerable growth in the use of robots for educational purposes and have anticipated that this trend will continue for years to come [
25,
27]. The many different robotic kits that have emerged since the 2000s (LEGO Mindstorms RCX, NXT, EV3, WeDo, Arduino, mBlock, KOBI, Makey Makey, Raspberry Pi, PicoBoard, Beagleboard, Crickets, Bee-bot, Cubetto, etc.), with improved and increasingly user-friendly designs, have paved the way for the popularization of robotics among students of all ages [
26].
It cannot be disputed that educational robotics is increasingly present in educational centers around the world [
25,
26], but, despite its growing use, there is no common concept of what it represents [
19], citing other authors, say, for example, that ER is a tool at the service of learning that allows practicing 21st century skills; or, in a more elaborate way, that it is a learning context that promotes a set of skills linked to creativity, design, construction, programming, and dissemination of own creations, first mental and then physical, built with different materials and technological resources, which can be programmed and controlled from a computer or mobile device. There is agreement, however, that the value of ER is not in teaching robotics to students but in taking advantage of its multidisciplinary nature for the construction of a technological object that has a specific purpose and that develops key skills for the students of the 21st century [
19], skills among which, of course, computational thinking stands out since, when we talk about programming and robotics, we are inherently talking about CT. Retracing the steps of RE, we can go back to Papert, who gave birth to educational robots when he created his Turtle, designed as a real device that children could control with programs developed by themselves in LOGO, a computer language created by Papert himself [
20,
28].
The main theories behind ER are constructivism and constructionism [
26,
28,
29]. Piaget argued that the manipulation of artifacts is key for children to construct their knowledge, to which Papert added the idea that this construction becomes especially effective in a context in which the learner is consciously involved in the construction of a public entity, whether it is a castle on the beach or a technological artifact [
26]. That is why, by constituting something tangible and as mental development starts from concrete objects rather than the development of abstract reasoning, RE is not only relevant but also appropriate [
29]. When engaged with RE, children become motivated and participate enthusiastically in projects, achieving learning goals and/or developing new skills [
19,
26]. Finally, Benitti [
25] points towards the use of robotics as a tool for the development of thinking skills, problem-solving, and teamwork as it is an area in which the results are inaccurate, making necessary the development of evaluation tools on the matter, coinciding with [
30] in their aforementioned study. Another finding highlighted by Bennitti is that, in the experimental designs used most frequently, the participants were not randomly assigned, and in 40% of the cases, a control group was not used. He infers, therefore, that there is a clear need for more studies involving a good experimental design and more significant samples.
ChildProgramming-ER, as an extension of ChP, makes use of educational robotics as a tool for motivation and participation in the development of specific PC skills in children. To achieve its objective, this extension provides a set of concrete guidelines for the use of aspects of educational robotics during activities aimed at the development of computational thinking in children between 10 and 12 years old. Although, in general terms, the proposed extension does not rely on a particular programming language or on any of the existing commercial educational robotic kits, it was evaluated in the context of the Scratch-based mBlock visual programming language and the mBot Ranger robotic kit, both from the manufacturer Makeblock.
The ChildProgramming-ER extension, as shown in
Figure 7, is organized into four methodological packages, which are described below:
Basic concepts that integrate computational thinking with educational robotics. This package describes the basic concepts of computational thinking and robotics that both the teacher and the students must know to understand the development of the training sessions.
CT-ER Practices: Three types of practices are described that seek to use educational robotics as a tool for the development of computational thinking:
Educational Practices: they focus on the organization of working groups.
Practices for the development of computational thinking in the context of educational robotics: These practices allow the integration of computational thinking concepts with educational robotics applications.
Practices for the Evaluation of Computational Thinking: The objective of these practices is to evaluate and verify the assimilation of the concepts of computational thinking.
ChildProgramming-ER practical guide: This guide has a series of well-defined sessions to guide a robotics course, following the ChildProgramming model.
Lessons learned: These recommendations are proposed to conduct a session or develop a robotics course for children.
This methodological package allows the teacher, called an instructor or professor, and the students to integrate in a practical way the concepts of computational thinking and educational robotics, improving aspects such as:
Collaborative work is the practice of organizing activities so that all members of the group work actively toward a common goal;
The strategies put forward by the working groups when seeking a solution to the missions proposed in child programming;
The evaluation of the theoretical concepts transmitted during the training sessions.
The ChildProgramming-RE package of practices has been divided into three sub-packages: educational practices, practices for the development of computational thinking in the context of RE, and practices for the evaluation of computational thinking. Each of the practices in these sub-packages is described by means of a structure, as a template, which corresponds to
Table 5.
The following practices propose activities that allow the development of computational thinking in children’s programming missions with educational robotics applications and are recorded in the template shown in the table above:
Fundamental Decomposition and Incrementality Practice;
Error-Based Learning Practice;
Practice of computational thinking development through educational robotics problem-solving.
These practices facilitate the assessment of concepts, whether they are previously acquired or newly learned, and provide the essential information needed to enhance session guidance and planning. These practices include the administration of a pre-test (refer to
Table 6) and a post-test (refer to
Table 7).
Table 8 details the actions to be taken when applying the observation step, the objective of which is to observe the work of the teams and inquire about the difficulties encountered in the development of the missions as well as to listen to the solutions proposed to the problems raised.
Below, we present the activities suggested in the ChP-RE guide for the development of computational thinking in the context of educational robotics, specifying their purpose and the description of each work session carried out with the children.
Session 1:
Activity: Pre-test.
Purpose: To understand students’ prior perceptions of robotics and computational thinking concepts.
Description: Gathering information from the students themselves, to get an idea of the prior knowledge that they have about robotics and computational thinking.
Activities: Identification of the characteristics of the robots and identification of computational thinking and its associated concepts.
Purpose: To know the concepts of robotics and computational thinking.
Description: First approach, in the form of an explanation, to the concepts of robotics and computational thinking.
Activity: Assembly and play with mBot.
Purpose: To familiarize students with the robot.
Description: Student contact with the robot. Students assemble the robot and play with it, while reinforcing robotics concepts.
Activity: Identification of the actuators on the mBot.
Purpose: To understand what actuators are and what their function is.
Description: Explanation of the different types of actuators on the robot, teaching the students with a brief explanation of operation and giving examples of situations in which they could be used.
Session 2:
Session 3:
Activity: Decomposition pattern recognition into complexes tasks.
Purpose: Understand the concepts of decomposition and pattern recognition.
Description: Students are explained through examples what decomposition and pattern recognition consist of and their usefulness in solving problems by reducing their complexity or by tackling totally or partially similar problems. They are asked to decompose common problems proposed by themselves and/or by the teacher.
Activity: Verification in mBlock of the status of the mBot’s infrared sensor.
Purpose: Learn how to operate the infrared sensor as a line follower.
Description: Explanation of the mBot’s infrared sensor, and its operation as a line follower, together with the mBlock commands that allow to know the information it delivers (its status).
Activity: Decomposition of the problem, solution algorithm, and line follower with the mBot.
Purpose: Learn to use Boolean operators and control structures.
Description: Creation of simple programs that allow the inclusion of Boolean operators and the statements of IF-ELSE or infrared sensor. Before starting with the coding, it is necessary that the students present and support the decomposition of the problem and a solution algorithm.
Session 4:
Session 5: