Computer programming at school

There has been an increasing movement recently to have more computer science and computer programming taught in schools. I wrote about this a while ago in Why kids should learn to program computers and several organisations have begun to campaign about this. See Games, government and the future of coding in the UK [Guardian Gamesblog] and Programming should take pride of place in our schools [The Observer]

To me, the campaign to teach computer programming and computer science in school is really in two parts. The first part is to expose children to computer programming at a young enough age that they get a chance to learn it while it is easy for them, and to allow some of them to discover a love of coding that they might otherwise never pay attention to. The second part is to make sure that those who then choose to study Information and Communications Technology (ICT) at GCSE level are actually taught computer science – transferable principles of computing – and not just how to use computers for business. At the moment the ICT GCSE really consists of office skills. Learning to use a word processor, spreadsheet, database, and make presentations is quite important but I believe that these are simple things that every child should know in order to do their homework. In effect the ICT GCSE is like teaching someone to write but only on headed paper branded with a Microsoft logo. It is a necessary skill made so focussed and narrow as to be a bit pointless. Those who have actually chosen to study computing ought to be given a much deeper understanding of how computers work and impact the world around us.

At school in the 80s there was a BBC micro in the corner of nearly every classroom. Some children played educational games on them. Some used the simple word processor to type up their work. Some of us discovered that we could make the computer do things by typing commands. Fun things. For example, the old classic:

20 GOTO 10

The next question after seeing this little gem is often “What else can I make the computer do?” Of course not everyone asked this question, not even a majority, but those who did often went on to acquire a new hobby and a love of learning about these machines. Many of those people entered the computer software industry and now produce games and applications for a living. Others may use their skill to apply information technology to their job in all sorts of industries. Without the same opportunity and prompting present in classrooms any more, that chance of an early introduction has been lost.

One argument for teaching computer programming in schools is that it is a useful skill for future employment. In fact writing software is one thing that the UK has a good reputation for in the global market. However less people are going into the software industry now and the UK needs more programmers to keep the industry going. This might well be due to children not being exposed to coding early on and never discovering their talent or love for coding. It might also be because computers in the 80s did very little without being programmed to do something interesting by the end user. Now we have games consoles and web browsers so that children don’t have to learn any coding at all to get entertainment from computers. Preparing people for work is not the only reason to teach programming; I think that part of school should be a chance to cover a wide range of subjects so that children can discover new things that they might then choose to study at a higher level or go on to learn on their own as a hobby.

This video from BBC Click talks about the Raspberry Pi project to get ultra-cheap ultra-simple computers back in front of children and into classrooms. Can a £15 computer solve the programming gap? [BBC Click] It also visits a classroom where 11 year old children are being given the chance to create computer games as an introduction to programming. It is very interesting to see how they seem to take to it easily and get very absorbed in the project. This is what is being lost if we do not introduce them to the subject at that young age.

I have seen the argument that computer programming should not be taught in schools because there are other more important subjects that should be taught. There are many things that children ought to learn about and not enough time to teach them. I can sympathise with this argument to some extent. There are important skills that ought to be taught. I would suggest that managing a household budget and cooking are two essential ones. However, children are also taught subjects that might be to develop indirect skills or might even be just for fun.  I think that they should be introduced to computer programming very young, between the ages of 6 and 12. At these younger ages I don’t think that there is such a conflict between subjects, although I could be wrong about this. At any rate, an introduction to programming would not need to be dragged out over a long period. It would suffice to introduce the subject in a few lessons and then allow those that have had their imagination captured by the subject to continue in their own time with access to school resources.

If those children then go on to study ICT at GCSE, they might be disappointed with its focus on office skills. Reform of the ICT GCSE only affects people that have chosen to study it. I know of many people who have been frustrated at what they were directed to study because it was what they already knew and does not stretch them, and because they were not taught anything more advanced. I would like to teach office skills to all students early on as part of other subjects, (I think that happens already) and then people choosing ICT ought to get the more in-depth teaching that they would like.

What do you think? Do you agree or disagree? Vote in the poll and have your say in the comments below.