That's the question Eugene Wallingford asks in a recent post at his blog, Knowing and Doing.
If you studied computer science, did your undergrad alma mater or your graduate school have a CS culture? Did any of your professors offer a coherent picture of CS as a serious intellectual discipline, worthy of study independent of specific technologies and languages?
In graduate school, my advisor and I talked philosophically about CS, artificial intelligence, and knowledge in a way that stoked my interest in computing as a coherent discipline. A few of my colleagues shared our interests, but many of fellow graduate students were more interested in specific problems and solutions. They viewed our philosophical explorations as diversions from the main attraction.
Unfortunately, when I look around at undergrad CS programs, I rarely see a CS culture. This true of what I see at my own university, at my friends' schools, and at schools I encounter professionally. Some programs do better than others, but most of us could do better. Some of our students would appreciate the intellectual challenge that is computer science beyond installing the latest version of Linux or making Eclipse work with SVN.
Is CS a hollow shell of a discipline, a discipline with no overarching philosophy or narrative, no deep mysteries to plumb? Do physics and chemistry and math and biology all have these coherent narrative structures, a list of great accomplishments and even greater unsolved mysteries, a "way of doing things" that CS lacks?
Part of what makes it hard to judge is that CS is such a new discipline that the cultural perspectives it has carried over from it's parent disciplines -- electrical engineering and math, primarily -- obscure what's unique. And that tension between science and engineering pervades computing at every level. Perhaps it's unfair to only compare CS to science disciplines, maybe the culture of engineering needs to be thrown in there as well. As since there's so much business and organizational computing that gets done too, maybe there's an applications-oriented almost-business culture that seeps in at the edges as well.
Of course, there's no real, definitive answer to the question, only approximations. At some point, a wave function may collapse and we'll be able to observe a final answer. But not yet, I think.
So, what do you think? Does computer science have a culture? If so, what are the beliefs and behaviours that underpin it? What are its shared attitudes, values, goals, and practices?
(But what got Eugene thinking about this in the first place? It was Zed A. Shaw's post Go To University, Not For CS. It's not directly related to the direction I've taken here still very interesting. It's more about CS supposedly having a shallow intellectual/scientific culture.)
- Log in to post comments
It's always the outsider who notices the culture. I don't know how many Americans think we don't have a culture. Certainly there are implicit expectations and practices in CS that are obvious to outsiders. One must be very careful to not mix IT culture with CS culture - they are almost entirely different.
I agree with Zed that going to college to learn how to program is perhaps not the best use of one's time, but this
is bizarre. Some of those paradoxes in mathematics were only discovered once people like Kurt Godel and Alan Turing started thinking about the actual process of mathematical deduction---in other words, thinking computationally. Today, P vs NP is a huge unanswered question in CS that will affect mathematics as well, and it is rife with potential paradoxes.
I also don't understand the emphasis on language design and parsing in either of those posts you linked. Those aren't in the core of computer science as I understand it. Computation happens in natural systems, in engineered systems, and during interaction between systems. We don't need language design to study it. I wouldn't deny that a good software engineer should know something about design, but I don't think a good computer scientist needs to.
Although maybe this just shows that CS really doesn't have any core philosophy everyone agrees on...
No. CS has several distinct cultures, each with its own overarching philosophy and narrative, and its own deep mysteries to plumb.
Christina, I agree that IT & CS do have different cultures in many ways. On the other hand, there are many CS departments that have IT components -- I know, I went to one. Similarly, if you look at IT departments they often have CS people teaching in them. Which is the case here at York -- ITEC has CS people teaching courses and CS has ITEC people teaching courses. Not to mention the fact that a lot of CS people end up doing IT work -- again, I'm a good example of that. Both ACM and IEEE publish stuff that approaches IT rather than pure CS or engineering.
So yes, the cultures are distinct but they do influence each other at the edges. As JeffE states, CS does have a lot of subcultures which can be very distinct. Or as a tweet I saw yesterday states, "I would argue that it has multiple possibly perpendicular cultures."
That seems to make sense to me, the pull of science vs. engineering -- and might be part of the reason that it seems like CS has no culture.
Some people, me included, view CS as a science. Unfortunately, we might be a minority. Most people are into IT or engineering.
Well, Daniel, I don't disagree. I think what you point out is the central tension in CS -- science vs. engineering. And IT, like you imply, certainly has the highest profile.
Is the task of CS to formalize thought?
Or explore the nature of thought by formalizing it?
www.robertwilliamjones.blogspot.com