Jan 112012
 

According to the BBC it has been announced that the current curriculum for computer training (ICT) in schools is to be torn up and replaced. And curiously enough the new curriculum is to include programming to a certain extent – as people have been urging for decades.

The first programming language intended for use by children was the Logo programming language first developed in 1967. So it is not as if this is a new idea.

To many of us, the most interesting aspect of computers is not that they allow us to use applications such as word processors, web browsers, and the like – all very useful tools that I would not want to give up – but that they can be controlled by programming. This could be as low-level as writing a device driver in C, or could be using some application macro language to automate a tedious task.

It is perhaps an over simplification to say so, but to a certain extent programming is that last bit – automating tedious tasks. Computers are good at tedious tasks; humans are not. We should be “teaching” computers to perform tedious tasks for us, and that is called programming.

Programming can of course get rather tricky particularly the lower the level you are getting to, but it can also be quite easy with an interactive language with more or less immediate results. For instance the old BASIC :-

10 for i = 1 to 80
20 print "Hello"
30 next i

Can be quickly typed in and then run gives an immediate result – the computer “says” hello to you. A simple example that can be typed in quickly, modified to give a more personal result … or enhanced to give different and slightly more interesting results. The immediacy is important to hook people in and interest them in programming.

And programming is not just useful for those who want to become programmers. Someone who has been introduced to programming may well be better able to :-

  1. Better specify to an IT department what they need, or the error they’re encountering. This will save time and money.
  2. Better appreciate what is and what is not possible.
  3. Be capable of automating computing tasks themselves – not quite programming, but very similar.