More Curriculum Musings

I’ve been making a bunch of comments on Computer Science education lately. The New York Times has an excellent article about “Making Computer Science More Enticing” which focuses on Stanford’s new curriculum. The Stanford curriculum is very similar to IU’s new specialization-based curriculum and seems to be an excellent approach to “teaching the discipline”.

Also, I found the “definitive” document on CS education – The ACM/IEEE Computing Curriculum 2008 Update [PDF].

Why so much focus on education? Computer Science is a (relatively) new discipline with a multitude of high-impact applications, giving us an imperative to train students quickly. Unfortunately, the speed at which our field is moving can cause us to lose sight of the philosophy behind the science.

If someone wants to learn Biology, you would point them to Campbell & Reece. If someone wants to learn computation, where do you point them? A list of books. There are books focused on introducing algorithms and functional programming (SICP); there are tomes focused on general computation (Knuth); there are books focused on application (the entire O’Reilly library); there are definitive texts on specific languages (The C Programming Language, The Scheme Programming Language); there does not seem to be a widely-accepted, integrative introduction that emphasizes computation — algorithms and models. From what I’m observing in CS curricula across the country, the coursework is moving in this direction, but we still need this cohesive “Introduction to Computing” book.

As a final message, this video linked in the NYT article captures the beauty, richness and excitement of our discipline right now — “It’s sort of like you’re geometers and you’re living in the time of Euclid”:

6 thoughts on “More Curriculum Musings

  1. Tony Beavers

    I think CS education is a bit of a mess right now, perhaps due, as you say, to the increasing rate of technological change, even though the field is increasingly exciting. The push toward informatics seems to have left CS in the dust, shrugging its shoulders and asking, where did all our students go?

  2. Jaimie Murdock

    It takes a lot of effort to shake the notion that computer science is explicitly tied to the rapidly-changing technology. Rather it is concerned with the science of computation. Informatics, as currently expressed, doesn't seem to study anything specific, so they can keep up with technology without butchering their field. I articulated this at length last week:, apologies on the formatting of the post. Facebook's blog import doesn't preserve formatting that well and Blogger transforms everything into sloppy code. I need to switch to WordPress soon…

  3. Jaimie Murdock

    Facebook version of the blog post in the above comment:

  4. Tony Beavers

    I think there is a difference here between whether CS is viewed as a branch of engineering or a branch of mathematics. Our CS program is in our College of Engineering and is really centered on building things, in this case, software applications. I wish it was in Arts & Sciences, where it would retain a more theoretical and exploratory identity. At IU, has it been absorbed by Informatics?

  5. Tony Beavers

    BTW, note the reference to "machinery" in the name of the ACM. Even here, it's not just about computational theory and algorithms, but equally about hardware implementation. However, this really changes nothing about what you are saying.

  6. Jaimie Murdock

    Good note on the ACM, upon realizing that, there's even more humor in citing the IEEE as holding a claim in Computer *Science* education. Obviously, implementation is very important in the success of CS – it's just that theory is less transient.CS was in Arts & Sciences until this year, when they were absorbed by Informatics and turned into a "program" rather than a "department". The BA degree is still offered through CoAS. The curriculum is much more theory based than pretty much anywhere – I mean we start with a course on Scheme!

Comments are closed.