Computational thinking in primary education, why and how?

Felicia Elskamp Felicia Elskamp
11 - 09 - 2018

Computational thinking is one of those new 21st century buzzwords that has gained more attention over the past few years. Some people argue that it should become an important aspect of primary education, some do not recognize the added value of this skill, and others have never even heard of the term computational thinking before. So, what is computational thinking all about, and why is it important to include this skill in the curriculum of primary education?

Computational thinking (CT) means nothing more than understanding how a computer ‘thinks’ and how you should work with it in order to reach a desired goal. Computers are very smart, fast machines that can do way more complicated things than humans ever could. However, if we do not tell these machines exactly what to do, they just stop working and produce an annoying list of errors. This can be illustrated by a very simple example. Let’s say we want some program at the computer to draw a nice image of a house. The enticing way to do so, especially for children, is saying: well computer, draw me a nice house. However, a house is not a general shape that is perceived the same by everyone, which is why the computer does not know what to do with this vague command. Instead, we could for example tell the computer to draw a yellow square at the bottom of the canvas and draw a red rectangle on top of that. These shapes can easily be described by mathematical formulas and so the computer knows what to do with these commands. The better we specify the characteristics of the square and the triangle, the more aesthetically pleasing the final image will be. So, the programmer’s skills influence the computer’s output. This is what computational thinking is about and why it is so important.

Computational thinking includes many different skills. The most important one is being able to break a complex problem into smaller, more comprehensible steps. This is also illustrated in the example above, as we broke the problem of drawing a house into smaller problems: drawing a generally known shape with a certain size and color, at a specific position. The list below shows some of the skills that can be categorized as computational thinking:

  • Breaking a complex problem into smaller, more comprehensible steps
  • Creative problem-solving
  • Debugging
  • Logical thinking
  • Conditionals (if this, then that)
  • Recognizing patterns

This list shows many valuable skills related to computational thinking, all being much appreciated by employers in the ICT domain. However, it is still not clear whether or not we should teach this to young children. So, lets dive in a bit more.

Why is CT so important?

Okay, so now we know what computational thinking is, but why is it so important? As mentioned before, the programmer’s skills influence the computer’s output. Therefore, it is essential to focus on the thinking method, which is CT, behind programming before starting with the actual writing of code. This forces people to learn which sequence of steps is most efficient to solve a certain problem, how specific their instructions must be to reach a desired goal, and how to solve unexpected errors by efficient debugging and creative problemsolving. This will result in more efficient programmers and therefore in cleaner code written in a shorter period of time than what would be the case without the mastering of CT. Also, mastering the skill of computational thinking allows people to tackle more difficult problems, offering many opportunities for future technologies. Furthermore, CT is not only useful for writing code, but also in many other aspects of life. Once people master the skill of breaking complex problems into smaller, more comprehensible steps, they can apply this in any other situation. Think about solving difficult math problems, writing a gigantic report or baking a delicious cake. These tasks might seem difficult at first, but once you are able to break these complex problems into smaller, simpler and more comprehensible steps, it becomes way easier to succeed.

“Computational thinking helps making big challenges small and complex solutions simple.”

Why should we teach children?

First of all, it is of high importance to teach the new generation of job seekers how to live in today’s technological-based society and prepare them for a job in the ICT world. Teaching computational thinking to children will give them a head start in the growing ICT branch. The ultimate goal is to make children enthusiastic about technology from another perspective than what they are used to nowadays.

Secondly, children are fast learners, which means that teaching them the skill of computational thinking will be relatively easy. Also, mastering the skill of computational thinking from a young age will maximize the benefit. Some people might oppose the idea of bothering children with CT, as they believe that children should not spend all their time behind screens but instead play outside with their friends. However, the skill of computational thinking can also be taught without using electronics (which is defined as unplugged programming). Think about sorting toys, making children write down their morning rituals as a sequence of steps or baking cookies together. Following a cookie recipe for example teaches children the relation between a desired goal and the corresponding sequence of steps that needs to be executed, just like they need to do when writing code. It even helps them to get familiar with using conditionals, like: when the oven reaches a 180 degrees you can put the cookies in, or: when the cookies have baked for 20 minutes you should take them out. All these daily, fun and creative activities contribute to children’s understanding of computational thinking.

Lastly, as discussed above, being able to break complex problems into smaller steps offers many advantages not only in the ICT world but in everyday life as well. It helps children to recognize that some tasks might seem very difficult at first but are actually very doable, thereby improving their capabilities. Also, research has shown that “computer programming can help young children with variety of cognitive skills, including number sense, language skills, and visual memory” [1]. Also, it helps children to become divergent thinkers; they learn how to look at a problem from different points of view, come up with many possible solutions and select the best solution. This way of thinking offers many advantages for the future as it allows people to come up with original, ground-breaking ideas.

How should we teach children?

Teaching something to young children imposes multiple challenges, some of which are:

  • Young children have difficulties staying focused on the same task for longer than 10 minutes.
  • There is a great variety in skill levels within one classroom.
  • Some children might not be able to read yet.
  • Abstract thinking might be a difficult thing to do.

Besides awareness of these challenges, deep understanding of how children learn is essential when you want to effectively teach children the skill of computational thinking. Literature on this topic shows that children learn best when:

  • Working together [2][3]
  • Given immediate feedback [3]
  • Are actively engaged in the learning material [2]

So, let’s see how we can tackle the listed challenges by implementing these methods.

Difficulties with staying focused

Young children find it hard to stay focused on the same task for a longer period of time, whichmakes it harder for us to effectively teach them something new. Therefore, it can be very useful to include small tasks within the method as opposed to long, tedious assignments. This ensures that at the moment children stop playing, they have completed at least one or two tasks and hence learned something new. Also, giving immediate feedback is very effective because it allows children to link the feedback to the things they just did. When feedback is received at the moment children already lost their concentration, they simply do not care and will not take into account the feedback given on their task. Lastly, it is advantageous to design a teaching method that appeals to children’s imagination. This can be done by using bright colors, using physical elements or incorporating a storyline or roleplay. A nice example of the use of roleplay is levend programmeren in which some children play a robot and others take the role of a programmer. Children will feel responsible to fulfill their role properly, which motivates them to stay focused on their tasks.

Variety in skill levels

The existing variety in children’s skill levels makes it difficult to design a teaching method that is effective for everyone. First of all, it can be a good idea to try and design a method with one particular focus but offered in multiple levels of difficulty. Think about a game in which the goal stays the same but the steps to be taken to reach that goal get more difficult over time. Also, designing a method in which children need to work together will stimulate children to share their knowledge and learn from each other. Together, children can solve more complex tasks than they would be able to do on their own.

Not being able to read

Since we want to teach the skill of computational thinking to young children, we need to take into account that some are not able to read yet. To compensate for this, the method should make use of (colorful) symbols, blocks or drawings to allow children to use it without the need to read. So, the visual aspect of the teaching method is very important. A good example of using visuals to teach children more about programming is Scratch Jr. This app allows children to create interactive stories and games by “snapping together graphical programming blocks to make characters move, jump, dance, and sing”. Besides using visual elements, the teaching method should stimulate active engagement allowing children to experience instead of read. The next paragraph elaborates on the use of active engagement a bit more.

Abstract thinking is hard

Programming and computational thinking are very abstract ideas, which makes it more difficult for children to understand. Therefore, to effectively teach children something about these topics it is important to make them less abstract. This can be done by making them unplugged, so taking them out of the screen, into the physical world. Give children something to hold with their hands, like blocks or cards. This stimulates active engagement and allows children to experience the material. Instead of speculating about what would go wrong, they can try it themselves and experience the consequences of certain actions. A very nice example of unplugged programming is the sandwich robot, in which children need to give instructions to their teacher in order to reach a desired goal.

To summarize, computational thinking means understanding how a computer ‘thinks’ and how you should work with it in order to reach a desired goal. It is all about breaking complex problems into smaller, more comprehensible steps. Being able to do so offers many advantages not only in the ICT world but in everyday life as well, because it helps children to recognize that some tasks might seem very difficult at first but are actually very doable. This will increase their confidence and allow them to improve their capabilities. Teaching computational thinking to young children does impose some challenges, however, by using the right teaching methods these can be minimized and should most definitely not be a reason to not teach this skill to our new generation of innovators.

TL;DR

  • Computational thinking is about breaking complex problems into small, comprehensible steps.
  • Computational thinking is both useful in the ICT world as well as any other daily life situation and therefore a very important skill to learn.
  • Teaching computational thinking to children is important because it gives them a head start in the growing ICT branch, it maximizes the benefit of mastering CT, and it improves children’s capabilities in general.
  • Designing a teaching method for young children imposes some challengeslike their lack of focus and the great variety of skill levels.
  • Designing an effective teaching method requires you to know how children learn best, which is by working together, immediate feedback,and active engagement.
  • Through experience, I learned that unplugged programming is a very good way to teach children the abstract idea of programming in a fun and effective manner.
  • For my bachelor thesis of Creative Technology (University of Twente), I have designed a game to teach children in the age of 5 to 7 the skill of computational thinking. Please do not hesitate to contact me if you want to know more about this project!

References

[1] D. Clements. “Young Children and Technology”, Dialogue on Early Childhood Science, Math, and Technology Education, Jan. 1998.

[2] F. Collins. “The Use of Traditional Storytelling in Education to the Learning of Literacy Skills”, Early Child Development and Care, vol. 152, pp. 77–108, 1999.

[3] M. Jeremy et al. “Changing How and What Children Learn in School with Computer-Based Technologies,” The Future of Children, vol. 10, issue 2, pp. 76–101, 2000.

Felicia Elskamp. Felicia is a front-end developer at El Niño who designed a game to teach children in the age of 5 to 7 the skill of computational thinking for her bachelor thesis. Felicia Elskamp. Felicia is a front-end developer at El Niño who designed a game to teach children in the age of 5 to 7 the skill of computational thinking for her bachelor thesis.

Deel deze blog

Jouw partner voor digitalisering  en  automatisering

Bedankt voor je bericht! We nemen z.s.m. contact met je op. :)
We willen graag je naam en e-mailadres weten om contact op te kunnen nemen.

Laten we samen een keer brainstormen of vertel ons wat over jouw uitdaging. Laat je gegevens achter en we nemen z.s.m. contact met je op.