Beginning Computer Science Education is Broken

I’ve been reading the Institute for Personal Robots in Education Blog out of Georgia Tech lately. One of the more interesting and I think slightly provocative statements I’ve read recently comes from a recent post there.

It is now widely agreed in the CS education community that most current models of CS1/CS2 are broken.

A lot of people have been working on new ways to teach the first computer science courses at both the secondary school and university level. People generally don’t come right out and say things are broken though. Now I happen to agree with this statement. The way I have been saying it is that we are doing something wrong but that I don’t feel like I know what the right answer is.

The fact is that for too long we have had first programming courses that we designed to weed people out rather than draw them in. We’ve also gotten distracted by debates over what language to use, object first or second, and if we should use an IDE or not.

I’ve talked to people who say that the right language is the answer. Others say robotics, or multi-media, or perhaps game development. Or web development or mobile (pocket PCs, SmartPhones, etc) are the answer. I think that those things can help and maybe even help a lot. But we have to start with the curriculum and some basic understanding of what concepts we want students to learn and get a grip on the total desired outcomes. It sounds like that is the direction the Institute is going in so it will be interesting to follow developments there.

[By the way. I’m on vacation this week so this was written earlier for display later. Response to comments will be slow.]