The Times this morning has an article on the future of computer science:
Computer science is not only a comparatively young field, but also one that has had to prove it is really science. Skeptics in academia would often say that after Alan Turing described the concept of the "universal machine" in the late 1930's -- the idea that a computer in theory could be made to do the work of any kind of calculating machine, including the human brain -- all that remained to be done was mere engineering.
The more generous perspective today is that decades of stunningly rapid advances in processing speed, storage and networking, along with the development of increasingly clever software, have brought computing into science, business and culture in ways that were barely imagined years ago. The quantitative changes delivered through smart engineering opened the door to qualitative changes.
I don't really have anything to add to this, but it talks about some interesting projects. Also, it gives me a chance to use this post title, which is a rule for determining what counts as a science that was proposed by a computer scientist I know.
- Log in to post comments
Well, I know the saying, but it does not work 100% IMHO. I think computer science is really cool and nifty engineering, and political science is magical thinking. On the other hand, biomedical science, veterinary medical science, animal science and poultry science are true (though mostly applied) sciences. Then, there is no word "science" in economics because it is not a science, although its practitioners claim it is.
I don't really believe it, either, but it's kind of amusing as a post title.
You also left "creation science" off the list...
How could I forget that!!!!! I guess I was searching the mental map of the campus buildings as I was thinking about this. Fortunately, Creation Science still does not have a Department in my school.
I was a computer science student as an undergraduate, before I defected to physics, and a couple of my friends have continuted onto graduate school in computer science.
Althought it may not be a science in the strictest sense of the word, it's as much a science as math is - it doesn't describe the natural world, but it does describe algorithms, and is a series of advancing ideas. Hmm.
Math is also not a science, any more than engineering is... IMHO, what makes something a science isn't what it studies, but how it studies it. There is very little of the scientific method in computer science. There IS lots of mathematics and engineering though...
I guess, if you take something that's halfway between math an engineering, you get science?
What is "mere" about engineering anyway?
Cognitive science is definitely a science. In fact, it's the more scientific (and less introspective) combination of cognitive and developmental psychology (the scientific parts of psychology), linguistics (which is arguably only recently returning to a science after a few decades of Chomskian theology), neuroscience (definitely a science), and philosophy of mind (not a science, but fun).
Computer science isn't really science in any strict sense, but it's not engineering, either. It's just enough science to let me feel justified when I say, "Back off, man! I'm a scientist!"
Software engineering is sort of engineering-- certainly more so than what I consider computer science-- but being an actual practicing hardware engineer as well, I can say with some moral authority that there's still a qualitative difference.
Mostly when I think of computer science (algorithms, type theory, complexity/computability theory, etc) my mind goes into a similar state as when I study mathematics. When I think of software engineering (operating systems, compiler design, etc) my mind goes into a similar state as when I study engineering. More than anything, they seem to me to be applied and more applied mathematics.
Alex #6:
In my opinion, which ought to carry some weight, "mere" engineering is the systematic attempt to make use of real materials in conjunction with real knowledge of the way the world works in order to produce real, quantifiable, and predictable material results.
Where science aims to figure things out, engineering aims to make use of that, and in the absence of Aristotle and String Theorists(*) they form a virtuous cyclical pair.
* That's just for Chad and Aaron, in different ways.
In my opinion, computer science is a specialization in the general field of mathematics. Neither Math nor CS is a science. There are also the fields of Computer Engineering and Software Engineering which are distinct Engineering fields. A CS degree is not a vocational degree -- the student is not learning how to program in C# or summat. She may come out of a CS program knowing a language or three, but the reason for learning these languages is not so she can get a job coding in them but to understand general concepts.
Computer science is the engineering arm of mathematics. It's rich and popular, but has far less substance than math. Sort of like Hollywood movies vs. independent documentaries. I have a doctorate in CS, but I know the math guys can kick my intellectual ass. I'm OK with that.
Agreed that computer science is a subset of mathematics, but I think mathematics is a science. My reasoning is as follows:
1) We know that there are minimum mass/energy requirements for information storage, and minimum energy/entropy costs for each step of a computation.
2) We also know from Turing and Godel, that any given computation has a lower bound to its computational costs, but not all have upper bounds. This means on the one hand, that computation isn't "free" -- we need to manipulate matter and expend energy to accomplish it. On the other hand, when we embark upon a non-trivial computation, we don't necessarily know if we're going to get a result, let alone being able to predict the result.
3) Therefore, a non-trivial computation can be considered to be an experiment or observation, from which we can indeed learn something new. Further, our results are not implicit in our theories, algorithms and/or data.
4) Accordingly, I purport that mathematics is indeed amenable to scientific method. Specifically, I consider that mathematics is the science of substance-independent phenomena. That is, it's the science of what happens regardless of whatever material or physical context you're dealing with.
E.g., "counting" applies to any collection of discrete objects, from particles to stars. Likewise the mathematics of turbulence has fundamental commonalities, whether you're dealing with magma, water, air, or plasma. (Of course, the time-scale and other underlying constants do need to be adjusted to fit the application!)
let me just throw in for the "earth sciences" and "geoscience"
(because nobody else here is gonna?)
Computer science is certainly a science. It studies properties of computations. This sometimes takes the form of studying computations in engineered systems, so may be confused with engineering. It sometimes takes the form of proving things about algorithms or problems, so may be confused with math. It also sometimes takes the form of studying computations in things that actually occur naturally, just like "traditional" science. E.g. bioinformatics, computational linguistics, or the social networks that Kleinberg talks about in the linked article.
It is neither math nor engineering, and there is plenty of scientific method in computer science. If your only exposure is undergraduate classes and/or programming, you probably haven't seen much of it, but it is there.
One of my students came to visit me some years ago after transferring to a university. I asked him what his major was. (He had taken calculus from me when he was planning to become an engineer.) He said, "physical science." I had to ask him what that was. It turned out to be the name that the physical education department had adopted at his school. Their students weren't P.E. majors anymore, they were "phys sci" majors.
No, I didn't vomit. But it was a close one.
Peter Naur, who won the 2005 Turing Award, has always argued that Computer Science is the wrong name, and that it should be "Datalogy" instead, since data is what is central to the field. The Danish computer science departments are indeed called Datalogy departments, and the first one at the University of Copenhagen (and the insitute at which I study), started out as part of the institute of mathematics.
I have to agree with commenter #16, computer science is the wrong name for it.
Computer science is as much about computers, as microbiology is about microscopes.
I think John Novak should win a prize for the ghostbusters quote.
Computer science is math. The question of whether or not computer science is science is thus simply a question of whether math is a form of science. Since this is merely a question of semantics, it is probably not a very interesting one.
Of course, maybe we ought to be careful not to get Computer Science and Software Engineering confused.
I don't agree. Computer Science contains a lot of Math, but it also contains Cognitive Psychology and other fields.
I put Computer Science in the Applied Mathematics basket.
You can prove things about computations, wheras you can only provide evidence for scientific hypothesis. Certainty is limited in science, in can be absolute in mathematics.
There are universities, including one at which I taught, that have courses called "Physical Science" and couses called "Physics."
The ones called "Physical Science" have less Math in them than the ones acalled "Physics." My wife has taught both types of courses, with exactly that bifurcated terminology.
As someone whose M.S. (University of Massachusetts, Amherst, 1975) was in a department then called "Computer and Information Science" but which has since changed its name to Computer Science, let my express my opinion that Computer Science is heavily mathematical, i.e. massively overlapping Math, but is not just Math. It includes, for example, hardware aspects of Electrical Engineering, Psychology aspects of Human Factors, and Biology aspects of Cybernetics.