Writing this post somewhat seems like a waste of time. Why should I have to defend the scientific virtue of a field that so clearly deserves a place alongside Physics, Chemistry, and Biology as a scientific field? Why do at least some who make decisions about the General Education curriculum want to categorize Computer Science as a skill, as if it simply involved typing or using a spreadsheet? Why do any arguments to the contrary always seem to fall on uninterested ears?
If I could answer these questions, particularly that last one, I might start to believe the fortune cookies I’ve been opening at Panda Express that predict that good things await me. As it is, Computer Science is the Rodney Dangerfield of the sciences: it is an afterthought that doesn’t get the respect to which it has thoroughly laid claim.
One of my favorite quotes about the field is from Edsger Dijkstra, who said in 1970, “Computer science is no more about computers than astronomy is about telescopes.” Dijkstra, a Dutch Computer Scientist, won the field’s version of the Nobel Prize, the Turing Award, in 1972, so he knows what he’s talking about. What does his assertion mean? Just like physics, Computer Science doesn’t aim to be about the tools. Physics focuses on the nature of matter, the interactions between objects that manifest themselves as forces, the effects of those forces on objects, and how channeling those force-impelled objects can accomplish work. Similarly, Computer Science focuses on the nature of what is computable; how machines can be made to draw conclusions from data; how large-scale hardware systems interact in ways that can’t be predicted but only guessed; and how communications, software, and hardware systems behave when connected together so that they can be massaged into performing according to each other’s time scales. These are not trivial concerns. These are not observations that can be garnered without experimentation. These are not things we can look up in a textbook or can figure out using Excel. This is a frickin’ science, and it’s time we were treated it as such.
Do Computer Scientists learn skills? Of course we do. Contrary to what one less-than-enlighted person once told me, Computer Science is a whole lot of theory combined with a whole lot of application; it is not just theory. It treats tools and how those tools work combined in equal measure. After all, how can you figure out what innovations need to be advanced if you’re not familiar with what is already available? However, learning the skills is simply a means to an end, with that “end” being understanding how inorganic systems like these can analyze, organize, manage, and supplement existing information without a cerebral cortex. A lot of what we deal with are ominous but intriguing question marks. Just as a physicist yearns to discover that great unifying force or a chemist lusts after the answer to why systems seem to behave so unexpectedly at the nanoscopic scale compared with how they look at larger scales, we are driven to figure out how, for example, all the parts that make up a cloud computing infrastructure interact with each other and what the limitations of those interactions might be so that we can optimize such systems to eke more functionality and efficiency from them.
At the risk of pointing out the obvious (alas, it is difficult for me to grasp what is obvious and isn’t obvious in this issue), let me further claim this: just because the systems Computer Scientists deal with are man-made doesn’t mean the issues we address aren’t deeply scientific. The synthetic nature of the things with which we work doesn’t excuse us from applying the scientific method as our primary strategy for testing hypotheses and discerning what makes such systems tick. Divine origin isn’t the litmus test by which one judges a field scientific. Black boxes are black boxes, regardless of whether God made them or man made them.
The fortune cookie I most want these days is one that says “Don’t lose hope. Soon, all will recognize Computer Science as a science and not a business skill, particularly those on General Education committees.” OK, that’s a bit too specific for a Panda Express fortune cookie (not too mention a heckuva lot of ink to try to fit on one tiny soothsaying slip of paper), but it’s a wish I’d love to come true even more than I’d relish the return of hair to my luminous head.
Repeat after me: “Computer Science is a science.”
That wasn’t so hard, was it?