“The Hour of the Code”: Computational thinking workshop in a primary school in Guarda, Portugal

In recent years, there has been an increased effort to introduce coding and computational thinking in early childhood education. In accordance with the international trend, programming has become an increasingly growing focus in European education. The idea of introducing computer programming in the classroom dates back to the late 1960s. The introduction of programming language provides an opportunity to engage in logical and abstract thinking, problem solving, and the creative design process. One of the best-known initiatives is The Hour of Code. This initiative is being implemented in 180 countries and more than 700 million students have participated. The Hour of Code started as a one-hour introduction to computer science, designed to demystify “code,” to show that anybody can learn the basics, and to broaden participation in the field of computer science. This article describes a workshop held under the “The Hour of the Code” initiative and implemented in the primary schools of Guarda, Portugal. The activity took place at the school and lasted two hours. Students from the first to the fourth grade participated, with ages ranging from 6-11 years. The teachers of the activity were university professors of computer engineering and students of computer engineering.


Introduction
In recent years, there has been an increased effort to introduce coding and computational thinking in early childhood education. In accordance with the international trend, programming has become an increasingly growing focus in European education. The idea of introducing computer programming in the classroom dates back to the late 1960s. The introduction of programming language provides an opportunity to engage in logical and abstract thinking, problem solving, and the creative design process. Brigas & Figueiredo. "The Hour of the Code": Computational thinking workshop in a primary school in Guarda, Portugal.
Seymour Papert (2000) identified the potentialities of introducing children to programming languages as an incubator of powerful ideas, that is, as a tool to engage children in new ways of thinking and "thinking about thinking" (Papert, 2005). Programming language allows and creates an opportunity to develop into logical and abstract thinking, problem solving, and the creative design process. According to Papert (1980), the potentialities of programming languages become evident through the observation of children's participation in computational thinking projects. In the 1960s, the MIT team with which Papert was working developed the idea of introducing computer programming into the classroom. Papert developed the first programming language designed for children, LOGO.
Some projects have since been promoted in the United States. For example, the Computer Science for All initiative was launched to bring programming into every educational level (Smith, 2016). In Europe, some countries integrate coding in the curriculum at the national, regional, or local level, including Austria, Bulgaria, the Czech Republic, Denmark, Estonia, France, Hungary, Ireland, Israel, Lithuania, Malta, Spain, Poland, Portugal, Slovakia, and the UK (Balanskat & Engelhardt, 2014;Bocconi et al., 2016;Livingstone, 2012).
One of the best-known initiatives is The Hour of Code. This initiative is being implemented in 180 countries and more than 700 million students have participated. The Hour of Code started as a one-hour introduction to computer science, designed to demystify "code," to show that anybody can learn the basics, and to broaden participation in the field of computer science.

Computational Thinking in elementary school
In recent years, there has been a growing effort to introduce coding and computational thinking in elementary school.
The term Computational Thinking, which is now widely known, was first used in 1980 by Papert.
Various definitions and critiques of the concept "have been criticized for inaccuracies, ambiguous definitions and visions of Computational Thinking, and arrogance, as well as bold and unfounded claims about the universal benefit of Computational Thinking" (Tedre & Denning, 2016, p. 120). For Wolfram (2016), Computational Thinking "is about formulating things clearly enough and, in a sufficiently systematic way, it is possible to tell a computer how to do them." For us, Computational Thinking is an essential competence in child development and has the particularity of being transversal in all disciplines.
In the learning environment, it can be implemented by combining problem solving, understanding problems, or creating new solutions. These innovative learning environments can use computers to formulate solutions, and these environments are rich for enhancing the expressive creativity and evaluative power of students' ideas. Collaboration around a computer makes learning meaningful and supportive. In this sense, Computational Thinking is both delightful and effective for students.  (Graham & Latulipe, 2003;Lapan et al., 2000;Turner et al., 2008). 3. Motivation, confidence, pleasure: Students design and participate in activities that involve Computational Thinking and, if implemented using technology such as PC, tablet, and smartphones, there is a clear satisfaction in learning itself, providing the pleasure of "enthusiasm" through innovative environments, which allows free choices and effective outcomes. As Millwood (2008) points out, "such enthusiasm is usually fostered through play, where children are significantly responsible for choices and outcomes even when founded on imagination and fantasy." 4. Collaboration: Computational Thinking projects can be designed as teamwork, which enables children to acquire the ability to consult, work, and learn from others. It also has the ability to rely on play and, in particular, the delight of "coexistence" (Millwood, 2008 & Tarman, 2011;Wing, 2006). It allows children to develop and acquire analytical mental tools that are inherent in the field of computer science, including recursive thinking, the application of abstraction to discover a complex task, and the use of heuristic reasoning to find a solution. These mental tools are universally applicable (Wing, 2011).
You do not need to be in Computer Science courses to gain this knowledge, but in an integrated manner with other curricular subjects in school and from an early age; instead of teaching children about specific programming languages and hardware, which often complicates and 132 alienates children, teachers and schools should prepare children to think with creativity, complexity, and logic.
Computational Thinking is understood as a combination of four skill categories:  Pattern recognition: Pattern recognition is the process of identifying, defining, extending, and creating patterns. Pattern recognition requires the classification of data. For example, a preschooler learns pattern recognition when she sorts blocks according to attributes like shape or color.  Creating and using algorithms: An algorithm is a set of steps to solve a problem.
Programming a computer and solving an algebraic proof involves creating and using algorithms. One can solve tasks that involve creating and using algorithms in the form of step-by-step instructions.  Decomposition: Decomposition is an analytical process that involves breaking something down into smaller parts; normally, this kind of activity involves dividing a large thing into smaller things. In mathematics, it is very easy to create this kind of activity.  Understanding abstractions: We understand abstraction as something that exists only as an idea. Understanding abstractions requires the ability to make generalizations and use other problem-solving thought processes to imagine something we cannot see or touch.

Computational Thinking workshop in a primary school in Guarda
The activity took place at the students' school and the duration of two hours. Participants in the activity were students ages 6-11 in the first to fourth years of the first cycle of primary education. The teachers of the activity were college professors of computer engineering and students of computer engineering.
Instead of teaching children about a specific programming language, which is often too complicated for children, we define in this workshop activities where children must solve problems by creating and using algorithms.
In the following algorithm, children must define a set of step-by-step instructions that solve a problem. In this case, the children play a robot role (Figure 1).
Brigas & Figueiredo These activities were popular, and all of the children wanted to assume the role of robot. All the children helped each other, showed collaborative behavior, created several solutions to the same problem, and always tried to overcome previous mistakes; it was also evident that it created some competitiveness between them.
During the exploration of the model, a large number of children changed their minds and modified the algorithm for better resolution.

Conclusions
The major goal of these workshops was to evaluate the difficulties and potentialities of using Computational Thinking in elementary schools. The methodology used allowed us to observe the exploration and authoring of activities performed by children in a "natural" environment, the classroom. Working with the whole class allowed for observing diverse ways to explore the tools, too. The use of Computational Thinking in education facilitates the development of several important capacities (understanding, reasoning, decision-making, etc.) that we observed. Using Simulkids, children could make predictions and explain events which otherwise would not be possible with the same ease.
Brigas & Figueiredo. "The Hour of the Code": Computational thinking workshop in a primary school in Guarda, Portugal.
Brigas & Figueiredo. "The Hour of the Code": Computational thinking workshop in a primary school in Guarda, Portugal.