I put this together for a number of reasons --- most of which centered around solidifying my own appreciation for what I see as important in the discipline.

  1. I believe it was Prof. Gerry Sussman [MIT] who said we could write down all the ideas in computer science on 4 pages. I've always thought it would be good to actually try do it. This doesn't actually write down all the ideas, but it does try to outline them. I'm sure I could be more terse, but at the risk of obfuscating the ideas themselves.
  2. CS != Programming -- this was a fallacy which had me headed off to be an EE when I showed up at MIT. I've talked a bit with Ian Eslick about why a formal CS background is useful for the people he hires. This attempts to write down the big concepts which a CS person should acquire, underscoring how much more there is to CS than being able to program.
  3. As I set out to educate the next generation of movers and shakers, I want to make sure I have clear in my mind what ideas it is important pass on.
  4. As a discipline CS has taken heat (some justified) for being a pseudo-science. In many ways, though CS has added valuable knowledge to our understanding of the world. This also represents an attempt to capture that so I can better convey the contribution of CS to my colleagues.
  5. Even for non-CS majors, CS discipline offers some important concepts which it is useful for everyone to understand. Just as there is a utility for everyone to understand a certain amount of math and science, there is a good reason for people to understand a certain amount of computer science. This partially helps me collect the background I need for those times when it's appropriate to support this belief. Of course, I expect the way I weigh ideas and topics is highly biased from the perspective of a computer systems person. A theorist would, no doubt, have lumped many of the "engineering" things in the later half into one or two bullets and expanded my initial points.

    I welcome your feedback on important ideas which I may have omitted, or other suggestions for improvement.

    André DeHon