Aug 26

What is Computer Science?

There is a great debate going on over at the compsci.ca blog, in the comments, about just what is, or isn’t computer science.

I provided a pretty good response, but I thought I’d go into a bit more depth.

Trying to define what CS is, is just like trying to define what Mathematics is. Math gives us the tools to deal with relatively simplistic problems, like algebra, calculus, etc. These tools have allowed us to make enormous strides, in economics, statistics, physics, chemistry, biology, and so on. The presence, and usefulness of Math is undeniable in every field of Science.

Math is an asbtract field, dealing with numbers and logic at their very basic. Working with these, we have made some fantastic tools, but several fields are beginning to see the limitation of the equation.(Hmm, that rhymes.)

What Computer Science is, is the study of solving problems. It is not logic, nor math, nor boolean algebra. It is not linear optimization, database design, or programming. It is a superset, of all those concepts, though being derived from those basics, the sum really is more than the whole.

Thanks to CS, we have the most basic unit of problem solving, the algorithm. As we examine different kinds of algorithms, we create the tools to use and apply those algorithms. To me, this is much like the basic unit of math, the equation. Everything else we have in CS are really just an extension on algorithms. If you’ve studied high level CS, you will have seen that the problems being solved… are extremely abstracted.

The reason for this abstraction is simple. It builds our CS vocabulary and toolbox, giving us tools for screwing screws and hammering nails. Instead of needing a specific hammer for a specific kind of nail, we have an abstraction, that lets us deal in general with all kinds of nails.

Let me tell you a story. I worked for a week, in the cyber cafe for a congress of oceanographers and meteorologists. I had to help them upload their presentations, and in the process, I got to see the latest and greatest of oceanography and meteorology. And here’s the thing: they’re beginning to use tools and concepts that were developed in CS 30 years ago! I asked several scientists on this matter, and they admitted that the equation as a tool doesn’t work for the complexity they deal with, and the algorithm works very well.

We, in CS, are developing the tools and vocabulary needed to describe complex situations and balances. We are learning how to solve problems. We are… at the same point that the grecians were with numbers and mathematics. CS is more than Science or Math, though it contains elements from both. CS is itself a completely new field, and until we recognize that, we’ll be held back.

Oh, and Programming is simply the actual usage of these tools, much like accountacy, algebra, physics are all applications of Math.

3 comments

3 Comments so far

  1. Jason Ernst August 29th, 2008 10:22 am

    Hey interesting post, I like the part about the other fields making use of computer science to explain their complex concepts, I have been finding similar things myself for example much work in physics cannot be explained well without computer science models

  2. [...] in response to this, Zeroth posted about computer science on his blog with an article entitled “What is Computer Science?” He commented that many people in other disciplines make use of computer science as a way of [...]

  3. Zeroth Code » Djikstra beat me to it December 2nd, 2008 8:20 am

    [...] And he beat me, in reference to the post about What is Computer Science. [...]