Friday, May 25, 2012

An ongoing revolution... in computing education

These days a lot of people seem to be thinking, "Maybe I could try one of those free online courses and learn how to program." Others say, "What's the point?" (Juliet Waters, in blogging about her New Year’s resolution to learn how to code, explains what the point is.) Some even say, "No! Please don't learn to code!" Fortunately, the last category holds only a tiny minority of people.
The past six months have seen a surge of public interest in computing. The UK is refocusing its pre-university curriculum on information and communications technology to concentrate on the science of computing. (This is good timing; 2012 marks the centenary of the birth of Alan Turing, the London-born founder of computer science.) In the New York Times, Randall Stross writes about computational thinking as a fundamental skill for everyone. When even the mayor of New York City decides to join Code Academy to learn how to program, people take notice. A minor revolution is underway in formal and informal computing education.
One of the best explanations for this movement comes from a manifesto by John Naughton, in a public letter to Michael Gove, the UK Secretary of State for Education. Naughton gives us two compelling insights:
3. We believe every child should have the opportunity to learn computer science, from primary school up to and including further education. We teach elementary physics to every child, not primarily to train physicists but because each of them lives in a world governed by physical systems. In the same way, every child should learn some computer science from an early age because they live in a world in which computation is ubiquitous...
4. Our emphasis on computer science implies a recognition that this is a serious academic discipline in its own right and not (as many people mistakenly believe) merely acquiring skills in the use of constantly outdated information appliances and shrink-wrapped software...
In other words, learning to program can be thought of, shallowly, as learning how to make a computer do specific things. In the same way, you can think of learning how to play the piano as figuring out the sequences and rhythms in which you should press the keys. But that sounds silly, doesn't it? It's hard to imagine learning to play the piano without gaining some insight into music. The same is true about programming—what you're really doing is learning how to solve problems in a rigorous way. Programming is just a vehicle. The learning isn't easy, but then not everyone needs to play Carnegie Hall (or attend Carnegie Mellon University) to find satisfaction and enjoyment in their efforts.
Further, there's real science behind the practicalities of computing. Paul S. Rosenbloom, in On Computing: The Fourth Great Scientific Domain (MIT Press, forthcoming), makes the case that the computing sciences are on par with the physical sciences, the life sciences, and the social sciences. That's interesting, in part because it's a brand new discipline, less than a century old, and there's so much yet to be discovered. Have you ever thought about making a significant contribution to physics, biology, or one of the social sciences? Very ambitious. But computing is new enough and moving fast enough that you just might be able to do it.

No comments:

Post a Comment