The Definition of Computer Science

What is Computer Science?

It’s always interesting to see how different people answer the question. Especially people who have or plan to have degrees in it. defines it as:

the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers.

I see this broken down into:

  • Science
  • Theory
  • Design of hardware and software
  • Applications for computation

Normally, I’d say fighting the dictionary on definitions would be rather fruitless, but this is by far one of the most vague definitions I’ve ever seen. I think a good analog for CS is math and physics. In that much more mature field, mathematics provides laws that say x should exist. It is then up to the applied physicist to prove in a lab that the theory is true. Even then, it is up to a company and its engineers to productize and actually use the fruits of science. Computer Science, in stark contrast according to this definition, is all of those things rolled up into one. It’s no wonder why no one in this field knows what it means. Continue reading “The Definition of Computer Science”

W3C Validation and the Web

I try to keep up on several blogs, one of which is Jeff Atwood’s Coding Horror. Recently, he chose the topic of W3 Validation and its necessity, or lack thereof. I also seem to have made a few statements on a similar topic, so perhaps my view is nothing short of expected. What is strange, however, is Jeff’s point of view, considering he and I are kindred spirits in the world of .NET and C#. Continue reading “W3C Validation and the Web”

Respond in blue ink: Requiring Tools in Computer Science

This semester I’m taking several electives to finish up my degree. One of the courses I’m taking is Object Oriented Programming Systems, formerly Object Oriented Analysis and Design. I have yet to find a suitable explanation as to why OOaD was cut and reformed at the graduate level, but I’m assuming it was because it was a bit too advanced for some many of the people I find in my major. In its stead, we now have a much more aptly abbreviated course.

In any case, my professor is a big proponent of Java, the Waterfall [[Software Development Life Cycle|SDLC]] (which he dubs “the generic SDLC.” I wasn’t aware wet sand was considered “the generic foundation”) and, of course, all the misery that comes with it. Continue reading “Respond in blue ink: Requiring Tools in Computer Science”