Live data from Hacker News

Ask HN: Is computer science really a science?

news.ycombinator.com

11–20 of 22 posts

Re: Ask HN: Is computer science really a science?

#12
The wikipedia entry seems to do a pretty good job fleshing this out:

http://en.wikipedia.org/wiki/Computer_science

the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems

and

The relationship between computer science and software engineering is a contentious issue, which is further muddied by disputes over what the term "software engineering" means, and how computer science is defined. David Parnas, taking a cue from the relationship between other engineering and science disciplines, has claimed that the principal focus of computer science is studying the properties of computation in general, while the principal focus of software engineering is the design of specific computations to achieve practical goals, making the two separate but complementary disciplines

Re: Ask HN: Is computer science really a science?

#13
It is not a science. It is also not about computers. :)

SICP lecture 1 -- http://www.youtube.com/watch?v=zQLUPjefuWA

But maybe it is a science: there are certainly a number of things in CS that yield facts about things like algorithms (Big O, etc).

I read other comments here that compare computer science to math, and it is not an unfair comparison. However, even amongst mathematicians, you will see something of an avoidance to associate math with science. Math is a framework of a sort, a way to think. When we are talking about how to think, we are talking about philosophy. Science has its own roots in philosophy, so it is not surprising that we see some grey areas here.

So let me rephrase it a little... When you learn Computer Science, you learn how to think.

People compare CS with engineering disciplines, but we find that there are a lot of methodology salesmen but few magic bullets. The problem with comparing computer programming (the practical side of CS) to engineering is that programming is very difficult to measure. We graduated from the idea of measuring lines of code. We have not figured out how to accurately measure a technique like TDD. We have an idea that code quality can rise when people pay attention to it, when people think about the problem; we can encourage this with code reviews, but we can do the same by encouraging developers to have a good night's sleep. We have conjured approximations for our measurements, but none of this has quite the feel of engineering. We are not building bridges, complete with a starting plan based on knowns and an execution.

Algorithms are not building blocks. They are possible solutions to specific problems. There is more than one solution, and the algorithms our professors taught us come with trade-offs. Recently on HN, there was an excellent article and discussion on the trade-off made by grep to improve string searches.

So you cannot just pick from your handy dandy book of algorithms, fit them together in a programming jigsaw, and expect results. The world of software is soft; requirements change, and systems change. It is extremely flexible in a way that other, more physical entities, such as bridges, are not.

In addition to thinking of CS as a philosophy, I favor thinking of CS as an art. I am communicating something to the computer, certainly, but in order to ensure that my code can be picked up by others or myself a year down the line, I must also dive into aesthetics. The code must be readable. It must make sense, must describe the problem, be expressed in such a way that humans can derive meaning from it. Thus is CS as much about beautiful design as it is about getting results.

Re: Ask HN: Is computer science really a science?

#14
post #9

Computer science is definitely a science. Mathematics is a science and computer science is part of mathematics. Thus computer science is a study of computation or the automatic solution of problems or processing of data, etc. The problem is that in most universities the computer science label is used for things that aren't computer science. Most computer science departments are mostly concerned not with studying or e…

Mathematics is a science

Most people would disagree with that, though interestingly, that was not the case in the 19th century.

http://en.wikipedia.org/wiki/Mathematics#Mathematics_as_scie...

It's all semantics, and not worth arguing much. But nevertheless, it's good to keep in mind that mathematics is about deduction. It starts from axioms and tries to find all of their consequences. Science is about inference, trying to figure out the axioms given the observable consequences. Maths is bottoms-up, science is top-down.

[That's not the entire truth. Platonism in maths is a nice counterpoint to the above. http://en.wikipedia.org/wiki/Philosophy_of_mathematics#Plato...]

My vote goes to CS being a branch of maths.

Re: Ask HN: Is computer science really a science?

#15
In most of Europe it's called "informatics" or "informatica" which at least to me makes a lot more sense: It's the study of information: data, languages, semantics, knowledge, knowledge representation, and intelligence. It has as much to do with computers as that astronomy has to do with telescopes, optics and radios. So it can/could be a science, it could also be mathematics or a philosophy of understanding.

Re: Ask HN: Is computer science really a science?

#16
It's just a name.

I got an undergrad degree in "Computer Science & Engineering". If you have to nitpick, what I studied was not strictly about "Computer", "Science", or "Engineering". It has bits of computer as in how to build a computer, bits of science as in the mathematics and theories of computation behind it, and bits of engineering as in how to build a large-scale program.

Personally I like "Computer Science" just fine. It would be silly for others to mandate CS to be called "Informatics", "Computer Studies", "Mathematics: Computer", "Computational Art", etc.

Re: Ask HN: Is computer science really a science?

#17
post #8

If it has to put science in the name, it isn't science. Examples, Christian Science, Library Science, Computer Science. That said, it is worth bearing in mind that computer science is no more about computers than astronomy is about telescopes.

Bachelor of Science?

Re: Ask HN: Is computer science really a science?

#18
post #14
post #9

Computer science is definitely a science. Mathematics is a science and computer science is part of mathematics. Thus computer science is a study of computation or the automatic solution of problems or processing of data, etc. The problem is that in most universities the computer science label is used for things that aren't computer science. Most computer science departments are mostly concerned not with studying or e…

Mathematics is a science Most people would disagree with that, though interestingly, that was not the case in the 19th century. http://en.wikipedia.org/wiki/Mathematics#Mathematics_as_scie... It's all semantics, and not worth arguing much. But nevertheless, it's good to keep in mind that mathematics is about deduction . It starts from axioms and tries to find all of their consequences. Science is about inference , tr…

Citing Gödel's incompleteness and Turing's incomputability, Gregory Chaitin says (http://www.cs.auckland.ac.nz/~chaitin/cordoba.html) that "mathematics is different from physics, but maybe not as different as most people think".

Perhaps CS is a math, but investigating CS sometimes necessarily employs science.

As you say: not worth arguing much.

Re: Ask HN: Is computer science really a science?

#20
A computer is a man made device so there is nothing to be discovered in the sense that biology, physics, chemistry required discovery to understand how things work. A computer is engineered and that in turn requires application of chemistry, physics, thermodynamics, electronics and boolean algebra (which is a part of mathematics body of knowledge).

Perhaps we should be talking about "computer engineering" which is how we build computers and "software engineering" which is how we build programs to run on those computers. Both of these require considerable learning, experience and planning. Which probably explains why people want to avoid the "engineer" tag, because it sounds like less fun than HACKING.

Post reply on HN