From robot hamsters to beatboxing, there are plenty of activities to help students develop thinking skills associated with programming. No computers needed.
Video source: Elizabeth Jones from The British School in The Netherlands
Computing is now a required part of the curriculum from EYFS to KS3 and beyond. But computing is much more than just programming: it’s a way of thinking, of understanding the world so that people can change it. Those thinking skills can be developed away from the computer; indeed, moving away from the computer can often help students understand the ideas without being distracted by the technology and they are more likely to be able to transfer them to new contexts. Here are five good ways of introducing and developing computational thinking across the curriculum through fun, physical activities.
Music is a stimulating context for developing logical reasoning. This human beatbox activity can help students learn about repetition and parallelism by using their bodies and voices to layer sounds.
Begin with a simple clapping rhythm and then ask groups of students to add to their mix. They can draw a flow chart to record their compositions. Students will instinctively include nested loops (loops within loops). You could introduce the idea of parallelism with several sets of instructions running at the same time and show how messages can trigger other threads.
An algorithm for three musicians running in parallel and responding to a broadcast message
You might extend this activity by asking students to flowchart dance routines such as the Hokey Cokey or songs like Hey Jude, which brings in pattern recognition and decomposition. The webtool Incredibox is useful for showing how sound layers can be built up. And the free online music-coding environment Sonic Pi is a natural progression.
Robot hamster playground
Students can see algorithms executed in real life by controlling human “robots.” Not only can they tell someone how to make a sandwich, they can navigate a “hamster” through an obstacle course.
Ask groups of students to create obstacle stations that combine into a course using simple apparatus. They can use an invented notation to create a string of commands and send their hamster through the course. This naturally leads into students debugging their programs when their robot hamsters get stuck. You can also explore how to make the programs shorter with loops and conditional (IF-THEN) statements.
A possible notation for moving through an obstacle course
A variation is with groups of students shouting commands to direct a blindfolded robot to throw a ball to hit a goal or an opponent. Find more human robot ideas on Dr Techniko’s blog and on the Teaching London Computing resource hub.
Recipes are culinary algorithms; looking at similar recipes can develop the computational thinking concepts of abstraction and generalisation. For example, ask students to compare different versions of recipes, such as different fruit salads or tomato pasta sauces and create a template for a general version of the recipe; they will have to generalise to find the core of the recipe and use abstraction to find the most appropriate level of detail to write it.
Students then take their general recipe and use that to create a new dish, perhaps with a fantasy character such as Super Mario Spaghetti in mind. They may need to debug their recipe if it doesn’t taste too good! There are more ideas for kitchen computing on the Barefoot Computing site.
Codes for transmission
Codes can be used to hide messages. They can also be used to help transmit messages, by changing the representation of some information into a form that’s easier to send over some channel. This is the same idea as computers using 1s and 0s to represent all data internally. Semaphore and Morse codes are good examples and are easy for students to use. Semaphore uses flags and Morse code can use light (from a torch) or sound (from a buzzer or horn).
For the activity, split students into two groups, at opposite ends of the playground, school hall, or even the classroom. Give each group a handout showing the symbols in the code you’re using, the tools needed for the code, and some messages. Have the teams race to send messages across the space using the codes.
The students will quickly come across ideas like controlling the rate of transmission, error checking and error correction, and similar ideas in how networks work. Semaphore has a good example of different representations: letters A–K are also used to represent digits.
Conditional statements are about making choices in algorithms: IF this THEN that ELSE the other. Students can see how simple statements and conditions can be combined to form complex behaviour.
A simple start to this activity is “Simon says”: “IF the instruction starts ‘Simon says.’ THEN do it ELSE spin around.” You can make this more complex with more conditional statements: “IF I say an odd number THEN sit down ELSE IF I say a number larger than ten THEN touch your head.” You can easily invent your own questions and statements to integrate the activity with other subjects, such as true/false questions about history.
Activities such as these help children to explore key computing concepts and think about their application to real world contexts before returning to a ‘plugged’ environment to create and share their own programs.
This post first appeared on The Guardian Teacher Network.
Helen Caldwell and Neil Smith are editors of Teaching Computing Unplugged in Primary Schools.
Senior Lecturer Helen Caldwell is curriculum lead for primary computing and programme lead for the online course at the University of Northampton: Postgraduate Certificate in Primary Computing.