Keywords: Algorithm; Decomposition
What is Computational Thinking?
So, what is Computational Thinking and what does it entail? Let’s start with what it’s not! Computational Thinking is not programming, nor is it thinking like a computer! For me, Computational Thinking is about solving problems. Miles Berry describes it best in his publication to Primary Schools on the topic of Computational Thinking: “computational thinking is about looking at problems or systems in a way that considers how computers could be used to help solve or model these.”
What are the characteristics of Computational Thinking?
There has been much debate about what Computational Thinking entails, however, the general consensus is that it includes, but is not limited to, the following characteristics:
Why teach Computational Thinking?
Computational Thinking is central, not just to the teaching of Computer Science, but also to every day life! The key elements of Computational thinking lend themselves naturally to other STEM subjects such as Science and Maths but, as many would argue, are also an essential component of 21st Century learning. As Jeannette M. Wing, President’s Professor of Computer Science at Carnegie Mellon University, Pittsburgh succinctly puts it in her article published in Communications of the ACM: “Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing and arithmetic, we should add computational thinking to every child’s analytical ability.” - See more at: http://teachwithict.weebly.com/computing-blog/strategies-and-resources-to-support-the-teaching-of-computational-thinking
Using magic tricks to teach computational thinking?
You may be asking the question: “What do magic tricks have to do with computational thinking?”. The simplest answer is that all magic tricks are based on an algorithm (sequence of step-by-step instructions.) Similar to a recipe or set of directions, if any of the steps are wrong or are not clearly explained, the trick is likely to fail.
In this lesson, students will be taught a simple magic trick (Courtesy of Mark Dorling). Using the magic trick students will explore some of the main principles of Computational Thinking.
Start the lesson by demonstrating a simple card trick - courtesy of Mark Dorling (Digital School House). The purpose of card trick is to teach pupils about sequencing and modelling a sequence of instructions. See video below:
I suggest following the video exactly, including the Harry Potter story! The reason I suggest using the story is that I find students remember the trick better if they can link it to the story.
At the end of the trick, divide the students into small teams and give each team a set of cards. Next, challenge the students to repeat the trick and, once they have solved the trick, produce step-by-step instructions. (Note: Try to encourage the students to write down every step – this is key for the next part). Tip: For those students who find this task difficult, you can let them watch the video again. I also find that doing the trick with all the cards faced up also helps.
As the teams write their step-by-step instructions, circle around the class and attempt to follow their instructions: the key here is to follow the instructions exactly – emphasising any imprecise/vague instructions (as if you were a robot). For example, if a student writes down the instruction “Sort the cards into four suits”, do this for every card in the pack - not just the cards 7, 8, 9 and 10, or if a student writes down the instruction “Put the cards in order”, sort some of the cards in descending order 10, 9, 8, 7 and some in ascending order 7, 8, 9, 10. The purpose of this is will become clearer later.
After about 10 minutes, or once the majority of students have completed their step-by-step instructions (whichever comes sooner), stop the class and ask if any of the teams think they have a fully working / close to working set of instructions – if no one volunteers, choose a team you know has completed the task. Next, in front of the whole class, follow the step-by-step instructions from the volunteer group (or group you chose if no volunteers).
Important! When following the students’ instructions, make sure that you, again, emphasise any imprecise/vague instructions. Hopefully this will generate discussion about need for detailed / precise instructions. Draw out answers such as “The instructions were too vague” or “The instructions were not specific”. Explain to students that computers (such as robots) can’t think for themselves therefore, when programming a computer, they must make sure that their instructions are clear / concise.
Task 1: Making the Tea
Explain to students that they are going to write an algorithm for making a cup of tea.
Instruct students to put the instructions in the correct order. Explain to the class that not there is no one right answer and that everyone’s solution will be slightly different. Once the students have agreed on the correct order for making their cup of tea, ask them if they can decompose each of the instructions into smaller parts e.g. getting the milk from the fridge – opening and closing the fridge door etc. As an extra challenge, you could challenge the students to see who can break down their steps into the smallest parts.
Once the majority of students have finished, stop the class and ask them “What is wrong with the making the tea task?” Prompt the students to think about the problems that occurred in the previous exercise (Magic trick). Draw out answers such as: “Missing instructions e.g. to fill the kettle with water”, “Need to add instructions for taking things from the cupboard” etc.
Explain to students that we can break down some of instructions, such as filling the kettle, into smaller parts and that we call this “Decomposition”. Explain to students that “Decomposition” is the first step of computational thinking. By decomposing something, we get a greater understanding of the problem.
Main activity 2: Writing an algorithm,
Introduce students to algorithms. Explain that once a problem has been decomposed, the next step is to write a series of step-by-step instructions to solve the problem (otherwise known as an algorithm)
Explain that we can use algorithms to describe everyday routines / activities such as a recipe for making a pizza or set of directions for finding our way home.
Challenge students to write an algorithm (sequence of step-by-step instructions) for a daily routine e.g. getting up in the morning, cleaning teeth, making a sandwich, walking to school, feeding the dog etc. Encourage students to be clear and concise when writing their instructions and not to miss any steps out – no matter how obvious they may appear!
Write the following keywords on the board:
Ask the students to explain the meaning of the two keywords. The Pose, Pause, Pounce and Bounce strategy is perfect for this kind of activity.
Pose a question to the whole class e.g. What is meant by the word Algorithm?
Pause to give students time to digest the question and think of their answer. If the students are engaged, try holding the pause for a little while longer to build up the tension.
Pounce: Quickly, select a student to answer the question. i.e. Insist the answer to the question comes from student A and possibly student B, directly and fast! Obviously, plan in your mind who you are going to direct the questions to before hand.
Bounce the question or student's response on to another student (immediately after the pounce). e.g. Ask them if they agree with the students previous answer or to give an example.
For more information about the Pose, Pause, Pounce and Bounce technique, visit: @teachertoolkit - http://teachertoolkit.me/2013/01/04/pppb-version2/
Students to finish off their algorithm or write a new algorithm for different daily routine.
Alternatives to starter activity
Alternatives to making the Tea Activity
More Flow Chart activities
Tags: Computational thinking, magic tricks, algorithms, decomposition
You may also be interested in: Strategies and resources to support the teaching of Computational Thinking
Microsoft Innovative Educator Expert / MIE Trainer
Minecraft Cert. Educator / Global Mentor
CAS Master Teacher
Raspberry Pi Cert. Educator