Thursday, December 26, 2013

What is Computer Science

(originally posted on Reddit.com)

Computer scientists use the scientific method to study the universes that exists within computers. We design algorithms and hypothesize about the meta-properties of those algorithms. Then we try to falsify the hypotheses about the algorithms by running experiments. In computer science, running an experiment involves actually running the algorithm in a controlled computational environment while measuring various quantities to see if those quantities match our predictions. Examples of things we might quantify and measure are:

  • will the algorithm take fewer steps to complete?
  • will the algorithm take less memory to complete?
  • will the algorithm do more work in less time?
  • will the algorithm loop indefinitely or not?
  • will the algorithm produce good random numbers, or will it's output be predictable?
  • can we share the computational steps among multiple computers that run in parallel? If so will it do more work in less time?
  • will the algorithm produce useful graphical visualizations?
  • will the algorithm classify data into useful groups?
  • will the algorithm "think" like a human, can humans relate to it?
Like in natural science, you can hypothesize all you want, but there is no real way to know if your hypothesis is correct until you actually run the experiment (program it and run it).

And if you should doubt that the a computer qualifies as a "universe," I would say that the only difference between a computer and the real universe is that we humans actually built the fundamental laws of nature for the computer universe. Whatever designed the fundamental laws of nature of the real universe is a matter of much speculation, but without having any documentation we can only approximate our universe's true nature through a process of reverse engineering called "physics."

No comments: