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.