Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Science != engineering.

Engineers take what scientists discover and create and design solutions based on that. Computer science is not about engineering a large software solution. Rather it's about discovering and creating algorithms and techniques that engineers can use to design solutions.

Much of the comments to this article seem to be happy to mix the roles of "technician", "engineer", and "scientist" when they are in fact very, very different.



Your definition of engineering may have been appropriate around the time of the industrial revolution when an engineer was literally one who built steam engines, but modern engineering in the academic sense under discussion here is absolutely a science.


Wikipedia describes "computer science" as an umbrella term covering everything pertaining to software development and algorithmic thought. Academic computer science programs generally offer courses in both the theoretical and the applied.

Even the very term itself has often been described as a misnomer, not necessarily having anything to do with "computers" or with "science".

I think the reason people mix such things around so much is because what "computer science" is has been ambiguously defined all along.


The truth is, CS is not a "science" like biology or physics.

It is an education in understanding computation and software development.

I'd also argue it is not an engineering discipline either. It's unfortunate the terms "Computer Science" and "Software Engineering" were ever accepted. They're holding us back; we're stuck in an outdated view of the subject.


I kindof disagree. For example while studying UML, it became more and more apparent to me how legitimate it is to have the word "science" in "Computer Science". Being able to create a high-level framework that is general enough to apply pervasively to IT systems is not a trivial matter, and requires considerable academic effort and creativity. The domain may be different from biology or physics, but the methods of obtaining that"understanding" you mention are strikingly similar (which accounts for the reliability of the results that are delivered).


Wait, did you just bring up UML as an example for backing up the claim that CS is science?!


I know UML is not very popular, but as you can see, I thought it was interesting.


In science, understanding is developed through abstract mathematics and empirical experimentation.

Whilst UML is an abstraction language, I would hesitate to compare it to a mathematical calculus. Regardless, we do not subsequently carry out empirical experimentation in the same way as science does. There is no "ground truth" that UML is modelling when developing software (ignoring edge cases) - it's a design tool.


They had to study existing software (empirical), and then find an understanding of what is essential and common to all cases.

The result was that a finite and compact set of concepts could be used to account completely for almost any design architecture, past or future. To me, this is pretty scientific.


There are certain aspects of engineering which are definitely science. Science really is just the production of new knowledge with hard facts.


Engineers are Scientists with thumbs was what I was told when I worked for a RnD organization on CIT's campus.

The corollary to that is "but the technician is the one who really understands it :-) "


My job as a software engineer involves a mix of all these things. Not a lot of heavy algorithm development, but definitely some.


Engineering utilizes science. But not many engineers need to know as much as Knuth.


Hm that's a fair point.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: