Sunday, April 1, 2012

10 LET programmers = programmers + 1; 20 GOTO 10

John Naughton's little manifesto on ICT education in schools rings hollow. His argument is that current ICT has failed because it just teaches you how to operate an office suite on a computer, and kids need to understand the broader picture of how computers are embedded in modern life. So they need to learn computer science.

What he wants children to understand is this:

[Computers] run the world, monitor our communications, power our mobile phones, manage our bank accounts, keep our diaries, mediate our social relationships, snoop on our social activities and even – in some countries – count our votes. But networked computers do all of these things, and a lot more besides.

Naughton's computer science looks like this:

There will be lots of interesting discussions about the key concepts that students will need to understand, but here's one possible list for starters. Kids need to know about: algorithms (the mathematical recipes that make up programs); cryptography (how confidential information is protected on the net); machine intelligence (how services such as YouTube, NetFlix, Google and Amazon predict your preferences); computational biology (how the genetic code works); search (how we find needles in a billion haystacks); recursion (a method where the solution to a problem depends on solutions to smaller instances of the same problem); and heuristics (experience-based techniques for problem-solving, learning, and discovery).

I'm tempted to Fisk those definitions, but I shan't and instead point out that the his goal - to get children to understand the social embedding of computers - and his method don't align well. Learning bubble-sort doesn't give you any insight into the why of social networking.

(Indeed as Maciej Ceglowski points out in The Social Graph Is Neither thinking about things as algorithms can lead you completely astray).

Naughton says ICT and the ECDL fail because they (explicitly) treat computers as being like cars: you don't need to know how the internal combustion engine works to drive one. But to throw the analogy back, he's claiming that he wants children to learn about urban sprawl and out-of-town shopping malls by learning how to service a gearbox. The jump from the macro to the micro is absurd.

I'm not per se against teaching kids to code, but you need to be careful about what you think you're going to get out of it. If you constrain yourself to the "practical maths" end of teaching programming then you're unlikely to achieve the grandiose improved "citizenship" he's after.

That will only come from actually teaching children the skills required to query the world and to understand the political and economic side of computers.

No comments:

Post a Comment