All you Irreal oldtimers know that I’m a fanatical fan of Abelson’s and Sussman’s Structure and Interpretation of Computer Programs (SICP). It is, I think, arguably the best computer science book ever written. You oldtimers also know how bitterly disappointed I was when MIT abandoned SICP and the course built around it. I’ve never accepted nor found convincing the rationale for that change.
I discovered SICP late in my career and even though I was well past the age when fundamental change was supposed to be possible, it completely changed the way I thought about and approached our craft. It was literally a life changer.
In 2011, to celebrate MIT’s 150th birthday, Brian Harvey, a Berkeley professor, was asked to write an article on why SICP was important. Here it is. It is, at the same time, inspiring, bittersweet, and infuriating.
It’s inspiring because it states clearly and convincingly why SICP is the right thing and how much better it is than other introductory courses that spend most of the semester discussing the syntax of whatever (non-Scheme) language de jour they’re using.
It’s bittersweet because Harvey recounts how SICP affected his students even though some of them didn’t realize its profound effect until years later. That would be fine except that in his essay Harvey wondered if SICP would survive his retirement. Sadly it didn’t—see his post.
Finally, it’s infuriating precisely because the fight was lost. All the people who wanted to talk about robots and program in Python won. Robots and Python are important things to learn about but they don’t teach you how to think about programming. They mainly teach you how to use libraries. That’s also important, of course, but shouldn’t we teach students about fundamentals and how to think about programming? Apparently not.
If you care at all about SICP and the culture that it engendered, take a look at Harvey’s essay.