Big Ideas In Computer Science

The Wicked Teacher of the West (in real life actually a very charming middle school computer science teacher) wrote recently about the subject of Big Ideas in Computer Science. In this case “big ideas” are defined as “the things students will internalize and remember long after a course is over.” This is pretty different from say big problems in computer science (I heard Turning Award winner Tony Hoare give a talk on that once which was very cool) but for beginners this may be even more important. One really needs a good foundation to build on and “Big Ideas” are a great part of that.

I like the ideas that were presented and wanted to a) draw some more attention to them and b) get opinions from others. First here in brief is her list (she fills in some details on her post.)

Computer tools are designed and the design affects what they can do.

Computers precisely execute instructions created by humans.

Computers are used to solve many problems across many disciplines.

Computing has a role in society

Now remember that her audience is middle school so working for high schools or universities or even professional developers may be different (and harder to understand :-)) but what do you think of these as a start? I like them and in fact in one form or another these are some of the key points I try to make when talking to students about the field of computer science – especially the last two points.

The multi-disciplinary way that computer science is used today is key I think to getting students to understand that this is not a narrow field. The role in society is one that most people are sort of aware of (at least) but that today’s students really have to internalize for the future. And that goes for students who are not going into the field professionally.

The first two ideas are key to understanding the limitations of computers as well as their potentials. In fact the way design affects what all tools (and I use tools broadly) can be used is a core concept of engineering and science in general. Compute science is a good way/place to teach it though.

Other thoughts? What would your four big ideas in computer science be?