There’s an old saying that my friends in other fields love to bring up from time to time: any discipline that has science in its name, probably isn’t a science.
Are they right? Is there some truth in that statement?
When I started to think about this question, I thought I could get it all into a single post. But the more I thought about it, the more I realized how complex this question really is. So this will be the first post in a series exploring whether (or under what circumstances) computer science can be considered a science.
First, some background. Why am I interested in this question anyway? I’m a computer scientist, I identify myself as such, I don’t have any inferiority complex about the work that I do, or in general the work going on in my field. Call me biased :), but I truly think that computer science as a field offers some of the most interesting, challenging, and fundamental questions and areas of exploration. Computer science, and technology in general, already has transformed society and culture and science and art and [insert favorite field here] in fundamental ways, and we’ve just begun to scratch the surface of what’s possible. I mean, what can be cooler than that?
The thing is, though, that as a computer scientist, I don’t fit neatly into any of the traditional groupings of disciplines. I work with scientists. And engineers. And humanities types. And artsy folks. And social scientists. And librarians. Did I leave anyone out? Because I probably work with them, too.
Let’s just take science as an example. I am often, as a computer scientist, associated with the other scientists on campus. And up to a point, that association works well, since we share some experiences and lingo and such in common. But there are fundamental ways in which we differ (the need for a traditional, physical lab being the one that comes most readily to mind). And there are a nontrivial number of scientists who think that computer science shouldn’t be considered a science, because it doesn’t pass the “litmus test” of what science is.
Substitute “art” or “engineering” or [insert favorite field or discipline here] for “science”, and you could make similar arguments.
Computer science is in many respects a tool. It’s a discipline that has its reach into many other disciplines. And that’s one of the coolest, most interesting things about it. But that’s also what makes it so hard to classify, to quantify. Computer science doesn’t have to neatly fit anywhere, of course. But classifying it as something could make it a bit easier for non-computer scientists, and even computer scientists, to begin to understand just what it is and what its purpose should be. Having this strong sense of “self”, of identity as a field, is, I believe, crucial to the survival of computer science as a field.
In subsequent parts of this series, I’ll look at some definitions of “science” and “engineering” and maybe even “art” and discuss how computer science does or doesn’t fit those molds, and what that means for the acceptance of computer science as part of those disciplines.