There's been much talk in the media recently about the need and value in teaching computer programming in primary schools - see this article from the BBC News website and this article from the BBC Newsround website, for instance. A few years ago I blogged my lessons about how to program Scratch games but felt that they needed revisiting since I've tweaked and improved them since then.
To begin, it's worthwhile just highlighting the progression that the pupils have in programming at my school so that you can see where teaching Scratch programming during Year 5 fits in. In summary:
- in reception, children control the real Bee-Bot around floor mats;
- in Year 1, children control an on-screen Bee-Bot around mats along routes;
- in Year 2, children program the Pro-Bot to draw simple patterns/shapes on paper as it moves;
- in Year 4, children type commands into the computer to program the screen turtle in MSW Logo to draw shapes on-screen with repeating elements.
Scratch can be downloaded for free by clicking here. I introduce it to the children by comparing it to building models out of LEGO bricks (since you have to join different command blocks together to create a complete program/model) and as being a more advanced version of a Logo programming language (since it allows you to control the movement of an on-screen picture but creates more complex and interesting results).
Now unfortunately if you just open the application up, by default it gives you a cat to move around – to make the progression from MSW Logo easier though, I instead always open up a project file (as Scratch calls them) where I’ve replaced this cat character (or ‘sprite’) with a more familiar and less distracting triangle.
I also ensure that I highlight a few fundamental features of the software too because it is a very new piece of software to them, notably:
To begin, I keep things simple and limit the children to just using the ‘Motion’ and ‘Pen’ command groups. I demonstrate how each command block can be dragged across into the middle ‘Scripts Area’ and then double-clicked on to be run. I also show them how to snap blocks of commands together so that they will execute in sequence when double-clicked. To practice these skills, I provide the children with a series of command sets to copy that teach them how to draw simple patterns and regular polygon shapes (squares, pentagons etc.) using the ‘Pen down’, ‘Move x steps’ and ‘Turn left/right x degrees’ commands. Two useful tips I also teach them here are how they can use the ‘clear’ and ‘point in direction’ blocks to re-set the main screen (stage area) and how to drag commands back over to the left to delete them – helpful for correcting mistakes when a sequence of commands doesn’t work as expected (this is called ‘debugging’).
Using this instruction sheet works extremely well I find since children think it's very similar to following the building guide they get with LEGO model sets but with the added bonus of having some annotations on by me explaining the function of each command/how a command can be edited to change what it does. (See this article that explain how to write them.) The children can follow it step-by-step independently and they enjoy learning the functions of the new commands as they come across them. The fact that the command blocks are colour-coded depending on which set they are in helps even more (e.g. motion blocks are blue, pen blocks are a murky green colour etc.)
After a while and when they seem to be getting confident at using the Scratch interface, I then let them have a go at programming their own Etch-a-Sketch-style game. This is a relatively straigtforward program to make since the main element of control is just making the triangle sprite move in different directions around the stage area depending on which arrow key on the keyboard has been pressed.
I encourage the more confident children to try adding extra sets of commands once finished to make the pen to change to different colours and/or thicknesses depending on which number/letter key has been pressed on the keyboard.
This lesson works really well and I'm sure your children would enjoy doing it. I find that they not only love playing and drawing with their finished Etch-a-Sketch games, but they also really seem to like learning how interesting and (perhaps more importantly) how accessible to them computer game programming actually is.
As a post script, here is a copy of a skills checklist that I have recently created that shows progression in computer programming. The ideas behind it being that the learning intention stays consistent across the school but the complexity level of the criteria for success increases as ICT capability improves.