Archive for May 31, 2010

Computer science as Yugoslavia

I wonder if Paul Graham is right, that “Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia.”  I’m wondering because, when I re-read his famous Hackers and Painters essay recently, I found myself listing the other areas not in his analysis but part of what I think of as “computer science”:

  • Human-centered computing, the implications of computing for humand and how human concerns (e.g., culture, psychology, economics) influence the design of computing systems.
  • The deep-down what computing is about, reflected in Alan Kay’s “Triple Whammy” that everyone should know about computing.  Is that mathematics?  It’s not the natural history or hackers parts.  It’s not really an area of research for everyone, but it is something that everyone should know.
  • The graphics designers that Brian Dorn is studying, who program but not to produce beauty in software, like Graham’s hackers, but to produce software output of value, to produce artifacts that might create beauty.  Brian is finding that these people need to know a lot about computer science to make themselves more successful at what they want to do, but they don’t fit into any of Graham’s categories.

Can all these pieces stay together, under some kind of UN-enforced treaty?  Or are we bound to split into multiple fields?

I’ve never liked the term “computer science.” The main reason I don’t like it is that there’s no such thing. Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia. At one end you have people who are really mathematicians, but call what they’re doing computer science so they can get DARPA grants. In the middle you have people working on something like the natural history of computers– studying the behavior of algorithms for routing data through networks, for example. And then at the other extreme you have the hackers, who are trying to write interesting software, and for whom computers are just a medium of expression, as concrete is for architects or paint for painters. It’s as if mathematicians, physicists, and architects all had to be in the same department.

via Hackers and Painters.

May 31, 2010 at 12:39 pm 2 comments

CS is shallow and lacking paradox

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.

May 31, 2010 at 12:04 pm 3 comments


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

Join 9,005 other followers

Feeds

Recent Posts

Blog Stats

  • 1,880,015 hits
May 2010
M T W T F S S
 12
3456789
10111213141516
17181920212223
24252627282930
31  

CS Teaching Tips