An introduction to teaching algorithms
For most children, algorithms will have been introduced to them with the classic example of making a cup of tea. The latest course offering from Raspberry Pi for teachers on online learning platform, FutureLearn, aims to provide educators with ideas to help them to teach key computing terms, from algorithms to variables and sequencing. Helpfully, Code Club have released some free posters to liven up your classroom that explain each of those concepts. Available on Raspberry Pi’s FutureLearn course, Teaching Programming in Primary Schools, is a great video clip, shorter than a minute, that clearly shows the importance of creating instructions that are clear and precise. In the clip, a robot follows the instructions to make the cup of tea, but as the instructions are not precise enough, it soon goes wrong and the robot is electrocuted when he pours the entire contents of the kettle into the cup. This clip can lead to discussions with pupils about why algorithms need to be written clearly and precisely with little margin for error. Introducing the idea of the instructions being carried out by either a robot or an alien can help pupils to understand that extra words or additional instructions can be the difference between the instructions being executed accurately. The inclusion of timings or the concept of waiting or repeating an action can lead to the action being performed more precisely.
So what can my class create algorithms about?
Anything that interests them. Perhaps you have been learning about instructions in another subject. Have they been cooking or making a model? Perhaps how to play a game or sport would be a good way to engage your pupils. Alternatively, simply how to make a sandwich, an origami model or instructions to get to school. For younger pupils, physically carrying out actions first is important so that pupils are able to gain a concrete understanding of what is involved. If you have access to floor turtles or beebots, writing algorithms to help guide them through a map or obstacle course is an excellent way of introducing the concept of algorithms. A good way to reference the importance of clear and precise instructions is by drawing a simple picture in pairs. One partner draws and then describes the picture to the other; the likelihood of the two pictures resembling each other is very slim!
Referring back to the FutureLearn course, the difference between algorithms and code was made clear: whilst an algorithm is simply the set of instructions laid out in a clear and precise manner, code is the instructions written in a language that the computer can understand. The combination of both algorithms and code is what is known as programming.
How to develop our algorithms
A hands-on approach
Many pupils appreciate a hands-on approach and this is how I teach the concept of algorithms to pupils. Once the pupils have had the opportunity to complete a task from which instructions can be constructed, rather than jumping straight into writing algorithms on a computer, I would provide cards to make this task manageable to all pupils. Making cards in varying levels of difficulty helps to differentiate the task. For Key Stage 2 pupils, the algorithms can be based on Scratch or Kodu. By giving pupils sets of cards that are real code blocks from those programming environments, they have the opportunity to discuss and develop their code with others before jumping straight on to the computer. Another great tool for computing lessons that I have used to great effect with Key Stages 1-3 is a simple one: mini whiteboards. The ability to easily edit code written on a whiteboard helps to build confidence. They are then able to take their written code to their computer and have already written a program before opening Scratch or their programming language of choice.
Once pupils have built up confidence with writing their algorithms on whiteboards or paper as ‘pseudocode’, it can be a good time to introduce flowcharts and symbols to develop their understanding (maybe move on to software such as Flowol). Including a ‘wait’ or ‘repeat until’ block can help to develop their thinking and expand the capabilities of their algorithms.
Taking away the fear of computational language being an alien concept
For younger children in particular, words such as algorithm, variables and decomposition can seem scary but by using them in other curriculum subjects (particularly in primary schools) that fear can be taken away through their regular use. Ensuring that your pupils have a clear understanding of key computational terms will mean that even though they seem like complicated and alien concepts initially, once your pupils can see and understand them in context their familiarity with the language will help to remove much of the fear associated with computing.
Siobhán Morgan is a Year 6 teacher at a Somerset middle school, where she is head of computing. She also leads computing across the West Somerset Academies Trust, from Foundation Stage to Key Stage 3.