Putting the Science Back Into Computer Science

The term "computer science" is a borderline oxymoron. Very little of what we do in software development is science:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2004/07/putting-the-science-back-into-computer-science.html

The mantra repeated throughout the early years of our Computer Science courses at my university is “Computer Science isn’t programming”. Programming and software development are just a part of what computer science is.

I’d like to further comment on this one.

Science is research, learning how things work or experimentation

Engineering is putting what you learned to work for you, designing and building.

Craftsmanship/Artisanship is perfecting your implementation process, i.e. practiced and experienced building techniques

Computer Science in the academic world is more like traditional science and/or mathematics. It’s about experimentation and advancing a field of study strictly for the pursuit of knowledge.

In industry, however, it’s more like engineering. People here don’t care about pursuing knowledge as much as they do about building products to sell and earn money.

For hobbyists it’s more like craftsmanship / artisanship; the will to become a better programmer through practice.

Of course, this is just my observation. It’d be interesting to see others’ comments on the issue.