CS is shallow and lacking paradox

May 31, 2010 at 12:04 pm 3 comments

The criticism in this blog post is interesting.  The blogger agrees with those in the field who are saying we don’t do enough to emphasize the rigor and complexity of computer science.  It’s interesting that the author also criticizes CS for not teaching its students enough about how to be a better programmer.  Those feel like two different things to me: To learn to be a great programmer, and to understand the deep and interesting questions of CS.

Computer science is shallow, and nearly every place it’s taught is at the mercy of “industry”. They rarely teach deep philosophy and instead would rather either teach you what some business down the street wants, or teach you their favorite pet language like LISP. Even worse, the things that are core to Computer Science like language design, parsing, or state machines, aren’t even taught unless you take an “advanced” course. Hell, you’re lucky if they teach you more than one language.

Another way to explain the shallowness of Computer Science is that it’s the only discipline that eschews paradox. Even mathematics has reams of unanswered questions and potential paradox in its core philosophy. In Computer Science, there’s none. It’s assumed that all of it is pretty much solved and your job as an undergraduate is to just learn to get a job in this totally solved area of expertise.

via Shedding Bikes: Programming Culture And Philosophy.

Entry filed under: Uncategorized. Tags: , .

Teacher’s Materials, Family, and Hawaii Computer science as Yugoslavia

3 Comments Add your own

  • 1. Andrey Fedorov  |  May 31, 2010 at 1:00 pm

    I’ve only seen one undergrad CS curriculum (Rutgers), and although it wasn’t as coherent as it could be (we covered the basics of state machines in at least 4 classes), it was nothing like Zed paints it as. Yes, the two introductory courses were learn-Java-basics, but they were easily skippable via AP exams. After that, discrete math (198:205) and computer architecture (198:211) dove right into everything from gate logic, CPU design, von Neumann architecture, method resolution, call stacks, computability, computational complexity, state machines, etc.

    Of course, the point wasn’t to cover them in depth, but to give a taste of how much there is left to learn. I think if Zed had taken those two classes alone, he would be quite humbled by the amount he has left to learn.

    • 2. Erik Engbrecht  |  May 31, 2010 at 1:58 pm

      I have a feeling Zed is thinking of CS programs of a little lower stature than Rutgers. There are “a ton” (quantification needed) of colleges and universities in the country with computer science programs.

      I can’t tell you exactly where the line is…I honestly have no idea. I actually think it’s pretty far down but I also think there are a lot of people in those programs.

  • 3. Alan Kay  |  May 31, 2010 at 1:09 pm

    This is an interesting damnation of academia, in that the complainer has been so sheltered from the real thing that he confuses academia with the actual field.

    There are semi-rational explanations why academic computing has gone so far wrong in so many ways, but they still don’t quite add up to the almost cosmic level of dogma and blindness that obtains, and which surpasses most medieval universities by far.

    Best wishes,



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,030,643 hits
May 2010

CS Teaching Tips

%d bloggers like this: