May 10, 2006

Is Computer Science Science? And if not, what the heck is it?

Another installment in my occasional series on the nature of computer science as a discipline. Or at least, more explicitly about disciplinary issues than many other of my posts related to CS.

So, here goes.

  • Philosophy of Computer Science: An introductory course by William J. Rapaport. (also from Teaching Philosophy v28i4, Dec 2005). Who knew that there was a philosophy of computer science? Certainly I didn't until I stumbled upon this terrific article. It describes the experiences of a CS prof at the State University of New York at Buffalo running a Philosophy of Computer Science course at his institution, how popular it was among both philosophy and CS students and, of course, a good explanation of what the philosophy of CS is and how he implemented those topics in the course. Some of the issues discussed include: what is philosophy; what is CS; is CS science or engineering, what is an algorithm; what is a program and ethical issues in CS. As well, there were lots of ideas for further reading, many books and articles I was unfamiliar with.
  • Valuing diverse computing science research by Harold Thimbleby. The main idea here is that the fields of computing science are growing and diversifying so quickly that it is potentially affecting what research is done and how it is supported. Basically, it is getting harder for peer reviewers and others to judge the relevance and usefullness of other people's research because the topics are so new that they can often seem trivial or uninteresting to the uninitiated. There are also some interesting bits on how CS is related to other disciplines and irreproducibility in CS research.
  • Moshe Vardi on OA in computer science references an interview in SIGMOD Record. Not much to say here. The interviewee bemoans the lack of true OA journals in CS without really addressing the probably greater tendency to self archive.
  • The scientific method in CS by Jane. This really struck home with me. Learning how to debug a program is one of the most difficult things to learn. The less the new students knows about programming, the worse the program will be. But at the same time, that lack of knowledge will really hinder the student with applying good strategies to solve the problem. How can you fix something if you don't understand what you've built. My own formative years in this regard were somewhat interesting. My first programming course (in 1981) was FORTRAN and we actually used a punch card system. It was always tempting to fix bugs by merely changing the order of some of the cards are seeing what happened. Later, in my last ugrad year I worked as a "programmer on duty" for the computing centre. Basically, I would sit behind a desk (or wander the terminal rooms) and help people with their programming and system problems. Oh, the horror. But I did learn a lot about programming and debugging by helping others with their problems.
  • CS Faculty Opine on CS in Computerworld refers to a Computerworld artcle in which a bunch of CS faculty are asked some rather pointed questions and who give very candid answers. Thought provoking reading. A taste:
    How should CS programs be modernized?

    Chazelle: Much of the curriculum is antiquated. Why are we still demanding fluency in assembly language today for our CS majors? Some curricula seem built almost entirely around the mastery of Java. This is criminal.

    The curriculum is changing to fulfill the true promise of CS, which is to provide a conceptual framework for other fields. Students need to understand there's more, vastly more, to CS than writing the next version of Windows. For example, at Princeton, we have people who major in CS because they want to do life sciences or policy work related to security, or even high-tech music. In all three cases, we offer tracks that allow them to acquire the technical background to make them intellectually equipped to pursue these cross-disciplinary activities at the highest level.

  • Forward-Looking Links at Computational Complexity discusses how a CS idea goes from manuscript to journal version via technical reports and conferences and how we really need a way to sort through all the different versions of papers out there.
  • Computer Science, Math, and Languages at Good Math, Bad Math discusses theoretical cs, math, computability, complexity and what it all means.

Previous installments here, here and here.


Jane said...

Very interesting links, John! Looking forward to reading these (esp. the philosophy course one). Thanks!

I did read the Computerworld article, and I have to say that I agree with many of the observations in the article. Here, we lose a number of bright potential CS majors to the sciences. Why? Because the population of majors is vastly more diverse, because the other sciences stress the need for teamwork and such much more explicitly than we do, and because the sciences do a much better job of "selling" social relevance. We in the academic CS field need to start thinking a lot more about what we want CS to be and how we're going to make the social relevance part of it more apparent.

John Dupuis said...

Thanks, Jane. I'd be interested to hear what you think of the philosophy article. I certainly found it very interesting, and I know I would have loved to take the course when I was an undergrad. I went to a Jesuit high school in Montreal (Loyola, natch) and they're pretty good at instilling a philosophical streak in just about anyone.

As for the Computerworld article, my other favourite bit was the quote "I would say that CS needs a serious public relations effort. A prime-time TV show, Silicon Valley Software, could also do a lot of good, if done right, to show people what computing careers are really about and to clear up many misconceptions about the field." I really agree with the idea that the media image of CS (and really all science and engineering fields) is very damaging to recruitment of women and other under represented groups, compared to the popular and generally positive and/or exciting images of other fields like law or medicine where the make-up of the fields has changed a lot over the last few decades.