A friend sparked me onto this article, and it’s topic is what I’ve been saying colloquially since college though the author says it profoundly better.
The conclusion: Software Engineering is very different than Computer Science, and it involves a human component not found in the ideas of traditional computer science programs (e.g., algorithms, compilers, etc.). It’s a beautiful read, and well worth checking out:
http://www.ddj.com/architect/217701907
PS: The struggle between choosing Rensselaer Polytechnic or Florida Tech for my college career came down to Florida Tech offering a Software Engineering program where Rensselaer Polytechnic didn’t. Though I couldn’t articulate it then, it had already seemed as if there was a fundamental difference between the two disciplines.
See also “Computer Software Cannot Be Engineered” by Norman Young which argues that the concept of “Software Engineering,” as an engineering discipline, is unfounded, and that “Computer Science” is not science, but mathematics.
“Computer software cannot be engineered because there is no science of computer programs. Science is essential to engineering. The application of scientific models through engineering judgment defines the essence of engineering. Computer programs, as mathematical objects, are not subject to scientific laws. Consequently, by definition, computer software cannot be engineered. …”
http://tech.slashdot.org/comments.pl?sid=1258979&cid=28236833