This is a guest post from Max Wainewright, a big thank you to Max for contributing to our community blog. To find out more about Max, please see his bio at the end of the blog post.
Recently I was lucky enough to hear Phil Bagge talking about teaching coding. One of the things that stayed with me most was his point that we need to balance exploration with instruction when teaching coding.
Inevitably, there needs to be an initial period of instruction where teachers are introducing new concepts and ideas to pupils. In leading the creation of the Discovery Education Coding service, one of the features I really wanted to be strong was the support to teach those new ideas — the instructional part of learning. By following the videos and units of work in Discovery Education Coding the instructional side of learning to code can be carried out even by teachers who are new to coding themselves.
However, it can be trickier to teach pupils the side of coding. It can be tempting for teachers to allow children complete freedom to plan and code their ideas. I do see this happen a lot, and at times it can result in amazing learning. However, the best exploration coding goes on when children are given some structure and support.
An example: we had just completed the beta version of Discovery Education Coding when I was testing it out in a Year Six class at my children’s school. The pupils quickly worked their way through a lesson in Discovery Education Coding, Block coding, Unit 4A on variables. They all managed to follow the lesson and create a simple game that used a variable to keep score. As the lesson ended, I suggested the pupils try making their own games in the ‘Free code’ area.
What happened next was quite varied. Some pupils wanted to make very complex games that would be hard to code. Others started adding lots of characters to the screen. But very few really stopped to plan or apply what they had learnt about variables in the earlier part of the lesson.
Having learnt from seeing this lack of application, now when teaching the same lesson I would:
- Let pupils follow the structured part of the lesson, teaching pupils how to use a variable in Discovery Education Coding.
- As a class, go over the main concepts covered.
- Set a challenge — for example; “Create your own game that has a player character, and three objects that move across the screen for the player to collect. Use a variable to keep score, and a timer to limit your game to 1 minute.”
- Plan a game together as a class (use an easel or something offline), and start building it together.
- Let them start their own games / programs (do some planning with a partner first).
By limiting the options available to pupils, you often make it simpler for them to actually complete a piece of work on a computer. Children can often be overwhelmed by choice when using technology — they will try out every font available when what you want them to do is focus on adjectives.
We don’t want children to only experience coding in an instructional way, but neither should they just be left on their own to explore a piece of software. They may be busy adding lots of characters and code, but there is no guarantee they will be learning anything new or applying what they have learnt. Set pupils focussed challenges, with a limited set of options and resources. This provides a supportive environment that allows them to deepen their understanding of the main learning objective they have been focussing on, and enables them to create something that will move them forward productively.
Examples of challenges using Discovery Education Coding:
Block coding, Unit 2B — after Lesson 1, where pupils make a simple program where they use buttons to fly a helicopter around the screen, use Lesson 6 Free code to:
“Add your own choice of animal to the screen. Draw a background for the animal to live in. Add four buttons to make the animal move around.”
Block coding, Unit 4A — after Lesson 1, where pupils build a game where they pop balloons, use Lesson 6 Free code to: “Make a game with three objects that move left to right across the screen. Choose the objects, choose a background. Add a score variable, and give points when the objects are clicked. Add a time limit.”
Block coding, Unit 4A — after Lesson 4, where pupils make a game where a pirate explores a treasure island, use Lesson 6 Free code to: “Make a game where the hero has to travel around a magical land looking for three special bits of treasure. Choose what the hero looks like, and the landscape. Choose the treasure. Use a variable to keep the score.”
Max has written over 20 educational software titles for children. He led the design of Discovery Education Coding and still works on it as a consultant. His programs and websites have won a number of awards including BETT, ERA and Practical Pre-School Gold Awards. Max also used to be a primary school teacher. He lives in London with his wife and two children.