Teaching computational thinking without using a computer

Computational thinking
In this lesson abstraction is taught by explaining to the pupils that they should keep their algorithms simple, using only use five body parts for their crazy character and that no detail or colouring is needed.

Computational thinking is one of the core objectives that runs through the computing program of study in England from Key Stage 1 to Key Stage 4. Before computers can be used to solve a problem, computational thinking refers to understanding the problem itself and the ways in which it could be resolved. Software engineers and computer scientists for example, routinely engage in computational thinking. As a higher order thinking skill, computational thinking has applications both across and beyond the school curriculum.

There are four key techniques to computational thinking:

Abstraction – focusing on the important information only, ignoring irrelevant details
Algorithms – developing a step-by-step solution to the problem
Decomposition – breaking down the problem into smaller, more manageable parts
Logic - looking for similarities among and within problems

Learning to program is one of the best ways to develop computational thinking, as it uses each one of these techniques. My intention here is to show an example of a lesson in which computational thinking is taught at Key Stage 1 (5 to 7 years) through programming. I took the lesson plan (attached above) from The Barefoot Computing Project and I taught it to my 1st grade class last week.  It required the children to work in pairs to create step-by-step instructions through pictures.  The pairs then swapped each other’s instructions, which they used to draw the ‘crazy character’ that the other child had in mind.

This sort of lesson is ‘unplugged’ (no computer needed) and teaches children about algorithms. Although the children used instructions to make a ‘crazy character’, any set of instructions could be used to introduce algorithms.  Algorithms are a critical foundation for learning to program because without them no program would run. Since this lesson’s objective was just an introduction to algorithms, only the term ‘algorithm’ was discussed explicitly. The other techniques of computational thinking (abstraction, decomposition and logic) were not explicitly mentioned, but the ideas behind them were explained to the pupils using child-friendly language. I include here how the four key techniques to computational thinking are embedded into this lesson.

Abstraction

Abstraction captures only the most important features of the problem, filtering out the details that we do not need. The Tube map for the London Underground for instance, shows the order of the stations and the interchange between lines, typically ignoring physical distances and locations.

Computational thinking

In this lesson abstraction is taught by explaining to the pupils that they should keep their algorithms simple, using only use five body parts for their crazy character and that no detail or colouring is needed.

Algorithms

An algorithm is a set of step-by-step instructions to solve a problem. Pupils learn during this lesson that algorithms are the sets of instructions that others can follow to draw their characters.

Debugging

Debugging takes place when pupils think what the algorithm should do and then show their partner to check if the drawing is correct.

 

Bugs are explained to the pupils as a mistake in the algorithm, something that does not work in the program as it was intended. Debugging then needs to be done in which pupils think what the algorithm should do, test it to find out (by showing their partner the drawing), work out where it goes wrong and then fix it. For example, when their partner draws the legs at the bottom of the body but they were supposed to be at the top, the algorithm has to be changed accordingly. In other words, debugging is likely to involve adding greater precision to the language used in one or more of the steps.

Decomposition

Decomposition is where pupils break down a problem into smaller parts. For example, pupils here are required to draw the body first, then the eyes, then the legs, and so on. This activity in particular, can help children to see the importance of looking at a problem in stages.

Decomposition

Pupils learn decomposition by having to separate the problem into five distinct steps.

 

Logic

Logic requires pupils to look for patterns in problems. By using logic pupils are able to predict what will happen when their partner uses the algorithm to draw the character. They use previous knowledge about what has already happened for steps like this. By both creating and following more algorithms pupils will recognise that they use the same blocks of “code” (in this case, written instructions and pictures) time and time again.

 

Working in pairs, children use logic to predict what their partner's character will look like based on the algorithm provided.

Working in pairs, children use logic to predict what their partner’s character will look like based on the algorithm provided.

 

To summarise, the focus on computational thinking in the new curriculum reflects a shift of emphasis from the skills of using ICT to developing an understanding of computer science. Computational thinking, which is the heart of computer science, is not only a useful skill to teach, but it’s also an important and interesting skill to learn. As I hope to have demonstrated here, the basics of computational thinking can be taught at a very young age (from 5 years) without even using a computer.  Since any set of instructions can be used to teach algorithms, the related ideas of abstraction, decomposition and logic can also be embedded into such a lesson to develop children’s computational thinking.

Will Fastiggi
Originally from England, Will is an ICT coordinator now living in Brazil. He is passionate about making the most of technology to enrich the education of students.
Add Comment Register



Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>