The Qualifications for Writing Textbooks

It’s certainly true that there are many unqualified authors that the self-taught programmer has to look out for, but what about the textbooks we read at universities? I won’t argue for a second that tenured professors are the least bit unqualified to discuss the intricacies of algorithms and abstract data structures, but who writes the book on using real world implementations? Who is qualified to write the book on Java or SQL Server? I’d want to see someone who has been using the technology for several years or a good portion of the technology’s life if it’s relatively new. Unfortunately, I find this is rarely the case. Continue reading “The Qualifications for Writing Textbooks”

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”