Rob St. Amant

Rob St. Amant
December 31
My roots are in San Francisco and later Baltimore, where I went to high school and college. I stayed on the move, living for a while in Texas, several years in a small town in Germany, and then several more in Massachusetts, working on a Ph.D. in computer science. I'm now a professor at North Carolina State University, in Raleigh. My book, Computing for Ordinary Mortals, will appear this fall from Oxford University Press.


MAY 25, 2012 6:38PM

An ongoing revolution... in computing education

Rate: 6 Flag
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, blogging here on OS 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 focus 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 programmingwhat 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.

Your tags:


Enter the amount, and click "Tip" to submit!
Recipient's email address:
Personal message (optional):

Your email address:


Type your comment below:
Into the feed. (I normally don't do this, but I'm importing these posts from my book blog, which focuses on computer science topics, and there's an hour or two delay in its reaching OS.)
i'm more than a little intrigued, being an ordinary mortal that wants to know more about those lines of code. am looking forward to your book, rob. thanks for feeding over here to OS.
Thank you for saving me from myself...I've seen these ads and was starting to let desperation do my thinking for me. As a gal who congratulates herself when she succeeds in making all the pretty lights come on and offers a steady parade of dead chickens to Adobe CS5, I need to stick to what I do best and let the code stay largely hidden...At least until HTML makes the old DOS light come on again.
Thanks for visiting, Candace! I'm trying to scare up interest in the entire field of computer science; it deserves attention. (Of course, attention is a valuable commodity these days. :-)
Hey, KC, it's perfectly fine to not want to learn to program. I said to my wife the other day, "I wish I could play a musical instrument," and we talked about the stuff we'd learned to do as kids that we just don't have the time or patience (or perhaps even the skill) to do today. So there's this idea about pushing computing education earlier into the curriculum... Sneaky, I know, but necessary. :-)
Oh, but I've also seen some pretty amazing stuff done in Scratch and Alice, programming languages for kids, and in Processing, a language that I think is targeted at graphic designers. Programming languages have a lot of variety.
cool stuff. yeah I have coded since my preteens but am not fanatic about it. its basically an advanced mathematics. anyone who is not good at mathematics should avoid it. and dont try to be a better programmer than one is at mathematics. its very similar to the [process of] translation of word problems into algebra problems.
ps all the wannabes out there, drop by my blog & maybe a little of it will brush off on you too :p
some of the popularity seems to be linked to the facebook juggernaut. and now that the IPO is being seen by some as a fiasco/disaster, maybe a little of the momentum will wear off.... but I agree about it being a grand challenge. stuff like the protein folding problem and AI are probably going to be solved in the next decade or two and it will be highly world altering. computers are already closing in significantly on object recognition which was considered nearly impossible only say a decade ago.
Hi, vzn,

I agree with you on some things and slightly disagree on others. I think you're on target about social computing being a driver for interest in computing. And there are important, long-standing challenges that will be resolved in the near term by computers. I think, though (here come a few disagreements), that the big AI challenges will take fifty rather than ten or twenty years. One of my colleagues in natural language understanding says that the getting to 90% or 95% performance is doable in many domains, but it's the last 5% or 10% that's the real killer. I could be wrong, but these sorts of things are hard to predict. The other issue is that algebra and other basic math topics are important, but it's more important in programming to be able to think things through in a consistent way.
absolutely should be taught from grade school on up....and is, really. Just not formally.
I'll never have the kind of mind that could encompass learning a computer language (which is how I think of it) and I surely do admire those who can.

As for Turing, I'm working on a post about him for his 100th birthday next month. He is a longtime hero of mine who got royally screwed by the very country he helped save during the war.
Cool, Lee! I look forward to reading your Turing post. His was a poetically tragic story that should be better known.

As for learning a programming language... the fault is at least partly (maybe largely) in the range of choices we have today.
I still carry the scars from the Fortran class I attempted in college. We used [shudder] punch cards, Rob. Punch cards.
Stim, one of my older (much older :-) friends has told me a story about walking across campus with a shoebox full of punch cards... and dropping the box. Come to think of it, almost everyone I know from those days has a similar story. Hmm... Modern programming mishaps are so much less vivid.