Computer Science: A Way of Thinking
Why Explain It?
I always found it quite annoying that I had to explain to people why I actually majored in computer science. Most people seem to assume that computer science is all about computers. This is a fair assumption since the name indicates that it is the science behind computers (or rather: The science of computers). However this is not entirely the case.
What is it about?
The first issue in the name Computer Science is to the term “computer”. This often tricks people in making the quick conclusion that computer science is the study of computer systems. This is not usually the case. Think of biology or chemistry as a start. Biology is generally the study of living organisms. Chemistry is the study of the composition, properties and behavior of matter. Now let’s look at some of their tools. Biology uses petri dishes as a tool for its experiments, much like test tubes are typically also used by chemists. Now these tools aren’t always used, and are certainly not the only tools used. In this matter you can start seeing how computers relate to Computer Science. A computer is simply a tool that can be used by Computer Science. A good folkloric quote puts that in perspective: “computer science is no more about computers than astronomy is about telescopes.”
So if computer science isn’t really about computers, then what is it about?
The core of computer science is really just about solving problems (i.e., computing). The computer is a tool that does automatic computing. And by problems, you can think of any type of problem (not necessarily your relationship problems!). Problems range from: trying to find our lost keys, finding a path to visit several cities with least fuel cost to landing a rover on Mars. Everyday we are faced with a battery of situations and problems that require our action. Problems surround us, take for example: You suddenly feel you need to empty your bladder, how do you proceed from there? I am pretty sure anyone would have to find a solution to that fast (or consequences would be rather dire!). So computer science in general, examines problems, all kinds of problems. You can clearly see by now how large the field is, and how it can inter-connect with other disciplines. You probably have done some computer science without even knowing it. If you ever tried solving a Rubik’s cube the fastest way possible or have worked on arranging puzzles, then you most certainly have done a form or another of computer science. The task of CS is to provide us with tools and methodologies to tackle these problems. Dijkstra uses a brief description for computer science: the science of thinking effectively (EWD709). And this is basically the gist of what it is really about.