What is "Computer Science"?

Nov 04, 2008 08:11

I already had a favorite quote about what Computer Science is not:
Computer science is no more about computers than astronomy is about telescopes.
- usually attributed to Edsger Dijkstra, one of the world's most prominent Computer Scientists.

But then, what is Computer Science, in terms that a layperson could understand? This question was recently asked on reddit, and eventually the Hive Mind was ready with one of the best answers I have ever seen. The answer, verbatim:
It's the study of problem solving. Given a problem, can we find a solution? How good is that solution - is it fast, is it efficient, does it work? How can we describe that solution? How can we actually put that solution into practice?

Computer science gives you the tools to answer these questions. Granted, the subject deals with a relatively limited set of problems - those that are amenable to our current problem solving techniques - but that's not actually a fundamental limitation of the field. Any problem we can describe formally, we can set our minds to solving.

Computers, therefore, naturally occur as a corollary of the study of computer science. We have these neat solutions to these problems and we want some way of actually acting them out. It turns out - very happily! - that it is relatively easy to make computing machines that are very general, and so far seem to be able to execute all of the solutions we are able to formalise.

Perhaps we want to be able to formally prove properties of our solutions - we have a whole bag of tools for that, ranging from mathematical analysis of the time and resources they consume to proofs of correct behaviour. We've found it helps to use languages to describe our solutions that can be reasoned about, but we've also discovered a trade-off between ease-of-use and rigour.

Some areas of computer science focus on certain classes of problems. Computer graphics, for example, or machine learning. Others are relevant to the construction and expression of solutions to problems in general, such as programming language theory and algorithm analysis. There is much overlap between these areas.

Executing solutions naturally give rise to the idea of a process, one which is also fundamental to computer science and we have lots of interesting research done on describing the behaviour of these processes as they evolve over time.

And so on. And so forth.
- by reddit user HenryR. Beautiful.

Oh, and the Hive Mind also gave what may be my second favorite quote about what Computer Science is not:
No that doesn't mean I will fix your computer for you.
- DrMephisto.

identity, sharing, systems

Previous post Next post
Up