If getting your child to learn his times tables is a struggle, the thought of him mastering computer programming probably sounds rather far-fetched. But there’s a growing movement, led by Google chairman Eric Schmidt, to introduce computer coding to the primary school curriculum as a matter of ‘prominence and urgency’, in Dr Schmidt’s words. Baffled? Here’s what you need to know.
Why is coding so important?
Coding means telling a computer what to do by giving it commands to which it responds. Computer programmers use a variety of ‘languages’ such as Java, C++ and Python to design, write and maintain computer programs. So why teach it to kids?
‘We live in a digital age, and children need to understand how the devices they’re using work and how to control them,’ says Clare Sutcliffe, co-founder of Code Club, a new initiative, launching in September 2012, offering free after-school coding lessons to Year 5 and 6 children. ‘Raising a generation of children who can code will have massive benefits to our future economy.’
Teaching coding puts children in control of the computer and lets them learn through experimentation, mastering concepts such as logic and consequences. It can also be a lot more fun than traditional ICT lessons, which typically revolve around using Word and PowerPoint and teach children how to be ‘secretaries’ rather than helping them learn how computers work.
Can primary school children really get to grips with coding?
You’d be forgiven for thinking that coding is far too complex for the average primary school child. ‘There are many different levels of computer programming, and some of it is incredibly complicated,’ agrees Clare. ‘However, if you use the right language, coding can be accessible to children as young as seven or eight.’
Of course, your child won’t master an entire programming language overnight, but some platforms can be surprisingly easy to use. ‘In Code Club, we’re using an interface called Scratch, developed by Massachusetts Institute of Technology specifically for children,’ Clare explains. ‘It’s a drag-and-drop system, so they can program computers without actually having to write code, and is teacher-friendly too.’
Haven’t I heard a lot about children and computing lately?
Must be the Raspberry Pi effect! The Raspberry Pi is a basic, bare-board (uncased), programmable computer the size of a credit card, which can be plugged into a keyboard, screen and mouse to form a fully functioning unit. Designed by a charitable foundation as a tool for teaching children how to code, its low price (£22 plus VAT) and simple technology make it ideal for giving children an understanding of how computers work and experimenting with many different programming languages.
So far, most school orders for the Raspberry Pi have come from private schools, but the founders of the Raspberry Pi Foundation hope that many more schools will invest in the product. It’s thought it could have as big an impact on computer science teaching as the BBC Micro (a computer widely used in schools in the 1980s, with its own beginner-friendly programming language). And if your child’s school isn’t getting in on the act, it’s an accessible pocket money purchase for many budding programmers.
Kids and coding: how to get started
If coding is a new concept to both you and your child, it’s a great idea to tackle it together. Try these websites to give you a taster.
A free, interactive site that will give you an introduction to coding, tracking your progress against your friends’.
A free downloadable system that works on any computer, teaching your child Ruby programming to make games and other fun apps.
An child-friendly introduction to programming without having to write actual code, with over 2.5 million projects.
A not-for-profit movement running free coding clubs for young people.
A US-based website to help you teach your child to code – even if you don’t know how to do it yourself.
A visual programming tool specifically designed for children aged 7-14. It runs on Xbox and PCs and allows for interactive games to be built using only a game controller for input.