|Getting Up Algorithm Design
Writing an algorithm (accurate sequence of instructions to achieve a goal) focussed around getting up and getting to school, using Microsoft Publisher as the recording medium. Although this can be done on paper, pupils make so many mistakes that easy editing and rearranging is of real value.
Computational Thinking Skills
Accurate order sequencing (Pants/briefs go on before trousers, unless you are superman)
Breaking actions up into small steps (Wake up, get out of bed, walk to the bedroom door)
Selection extension for most able (Do you want toast? Do you want cereal?)
Using basic flow diagram tools (Oval for start and finish, rectangle for actions, diamond for decisions)
Microsoft Publisher Skills (No pupil prior Publisher skills needed)
Starting a new Publisher document
Creating a shape
Moving and resizing a shape
Adding text to a shape
Formatting a shape to create a consistent style
Working in pairs (I have taught this individually and in pairs and the pairs achieved far better work due to the discussions generated)
Year 3 or Year 4 (I suspect it could be adapted for older or younger as well)
Three one hour sessions
Explain that their task is to write an algorithm that records their step by step journey from waking up in the morning to getting to school.
Place pupils in pairs or allow them to pair up naturally as suits the needs of your class.
Explain that they are going to work in a pair and that one of them will need to logon but both of them should take it in turns to input information.
Demonstrate opening Microsoft Publisher A4 landscape or portrait and zooming in using the plus button on the bottom right of the screen
Model creating an oval shape, right click on it and select add text from the pop up menu. Type in start and explain that start and finish are created using oval shapes. Model creating a couple of actions using rectangular shapes and adding text. Model linking each shape up with an arrow.
Show pupils how they can move a shape around using the four headed arrow and resize it using the manipulation points. Not all pupils will remember this the first time round.
In the first instance give them plenty of time to start and create quite a few blocks. Limit yourself to helping with Publisher technical questions and refrain from making any comment about their sequences even if they ask.
Whilst they are working go round and note sequencing errors and steps that are too large.
|Whole Class Debug Challenge
After 20 or 30 minutes draw the class back together. Explain that all algorithm and programming design is about trial and error and that it is totally normal to make mistakes. Then humourously debug some of their sequencing errors. A fun one, which occoured every time I taught it, was pupils who wrote ‘get up’, ‘have breakfast’ as actions occouring straight after each other. I would ask if they had breakfast standing next to their bed. You can then emphasis the smallness of the actions.
|Fix it yourself
Whilst pupils start to fix these errors go round and challenge every group that has these sort of errors. Ask them before you tell them what is wrong if they can spot what the issues are. Praise up anyone who debugs their own work. I often use stickers on a wall chart for this as it encourages independance and responsibility for their own errors.
Pupils often found it helpful if I did a quick recap of publisher skills and reminded them about
Accurate order sequencing and Breaking actions up into small steps
Allow plenty of time to work on the sequence of instructions during this session.
Do work your way round each group challenging them to spot and fix their own errors and pointing them out when they are blind to their own bugs.
|I have finished
There will always be pupils who think they have finished at some point during this session but normally this is down to them not breaking their actions up into small enough steps. You need to allow some leeway on this point between pairs but pupils who think they have finished this early can nearly always be encouraged to break action up further.
|I have cereal some days and toast on others!
A couple of pupils might ask about how they can record choices. I go over how to create a decision diamond with a yes or no answer. Demonstrating with a pre-made one is best. Explaining that pathways can go off in different direcrtions and come back again is important. Pupils who don’t undertand this will leave floating paths with no resoution.
I have tried explaining this with all of the class in Year 3 but found that for the majority, without any prior selection programming experience, it was a step too far. More pupils in Year 4 who had used an if else block in Scratch comprehended the idea. However I think the layout of this is far more complex than a simple if else block in Scratch.
In session three I prioritize the time such that
Pupils who had not finished their algorithm must finish it first
Pupils who had finished the algorithm can format their colours and layout to enhance the looks.
|Demonstrate to all pupils how to format their shapes, arrows and backgrounds.
To format the shape, left click on the shape you want to adapt. Left click on format under drawing tools. Left click on the bottom triangle next to change shapes. This will extend the choices. Click on choices to pre-view these in the shape below. This is a good time to remind the class that the main aim is for the information to stand out and be easily read. A dark background with dark text will not further thsi aim. I also remind pupils how to change the colour of text.
|To format an arrow, left click on the arrow and then right click to bring up a menu. Select Format Auto Shape and then in the colour and lines tab you can change the arrows colour, looks and thickness.
|To add a background click on page design tab at the top
Then click on the background button for lots of background options.
|Optional Session 4
Another important computer science concept is that of Abstraction. It is a method of hiding the detail so that you can concentrate on the bigger picture. Can pupils group similar activities together under one heading. Ironically when they first started to create their algorithms most of their steps were abstractions. Get up, get dressed, eat breakfast, go to school. I never spend much time on this as the real challenge is to break their actions up into smaller steps. However it is useful to introduce the idea as you will use it later in many forms of programming.
You can view some of my pupils work on the code-it blog here