Monday, November 28, 2011

Computer programming isn't driving or car maintenance

Today on BBC Radio 4 there was a segment about the importance of teaching computer programming in British schools. While I'm delighted to hear this being aired on such an importance program, some of the discussion was ridiculous.

Here's a key question:
John Humphrys: We don't need to know what goes on under the car's bonnet. Why do we need to know what goes on inside the computer?
This brings to mind the wonderful Charles Babbage responding to a question about his mechanical engines: "I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."

The question somehow equates a car with a computer.

What the question completely overlooks is that the computer is not a machine like a car with a single purpose, it's a meta-machine. A machine that can masquerade as other sorts of machine. A sort of chameleon device that can be persuaded to do its programmer's bidding. In the words of Alan Turing: "a universal machine".

You can't imagine someone turning a car into a music player, a machine that beats you at chess, a camera, a word processor, or a communication device. A car does one thing: moves. You need to know how to operate the movement. Well, a computer does one thing: lets you program it to do things.

If you teach someone to operate a word processor (as is done in the UK's stupid ICT classes) you are not teaching them to use a computer at all. You are teaching them to use a word processor. It's a bit like teaching them to use a typewriter only this one's a bit more sophisticated. In fact, there's be far more outrage if the UK's current ICT classes were called what they actually are: secretarial skills (that's not to demean secretaries as I went to learn how to be a secretary so that I'd be able to touch type).

Humphrys went on:
Isn't there a worry as well, Alex Hope, that we're scared (an awful lot of us anyway) are scared of computers? They seem to be such mysterious objects to us. I mean we can sort of vaguely understand what makes an internal combustion engine tick.
But actually writing code is a massive mystery to most of us.
I'd wager that that's the sort of argument you'd get from people who've never tried it. It's a bit like speaking French. That's really hard (the subjunctive really is a massive mystery), yet we do teach it in schools. And guess what? You're more likely to find yourself communicating with a computer and have need for real computer skills, then speaking to a French person.

More than 20 years ago I taught the LOGO programming language to primary school children. They were able to get the concepts and write programs. Why is today any different?

Tell you what: give me an hour with John Humphrys and I'll get him programming like a primary school child.

No comments: