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.