Next in our series on unplugged activities that teach computational thinking without any screens or devices, we reveal how a classic children’s game can introduce concepts such as algorithms and debugging to children aged three and four. Check out the previous posts in the series to discover the Leaving the House Routine and the Programmable Parent, and find more fun activities in our free ebook: Beginning Computer Programming for Kids.
If you grew up with Simon Says, you’ll know what a simple game this is. But its simplicity is deceptive, because it’s a terrific way to smuggle in some key computational thinking ideas and principles.
In case you’ve never played it before, Simon Says is a game for a minimum of two players. One player (in this case the adult) takes the role of Simon, who issues instructions to the other player or players. These are often active, silly, fun or all three at once, for instance ‘jump up and down’, ‘touch the floor’, ‘make a funny face’. However, these instructions should only be followed by the child if they’re prefaced with the words ‘Simon Says’. In larger groups, if a child executes an instruction that doesn’t start with ‘Simon Says’, they’re out.
What is learned when we include an activity is that the instructions have to be unambiguous, just like in an algorithm. So unless there is a ‘Simon Says’ before the actual instruction, then the algorithm or the ‘code’ itself is broken because it stops being logical. In addition, the adult has a verbal tool that allows him or her to insert false data into algorithm, either by not including the ‘Simon Says’ command or a muddled command like ‘Says Simon’ or ‘Stephen Says’. Consequently the child needs to engage in debugging throughout.
Simon Says-style commands can give added zest and complexity to the Programmable Parent and Leaving the House games. In addition, the child can also take on the role of Simon, which gives him or her the opportunity to experiment with unambiguous commands, as well as trialling what it feels like to consciously create a program or algorithm with bugs in it.