Monday, April 17, 2006

Computer "Science"

I'm planning to major in computer science. But is computer science really a science? What is science, exactly? The Free Dictionary defines science as :

a. The observation, identification, description, experimental investigation, and theoretical explanation of phenomena.

Let's use this definition as a reference. When most people think of computer science, they think of computer programming, which is of course not a science. Computers and computer programming are products of engineering. Computers are engineered using principles from physics, and programs are engineered using a combination of data structures, algorithms, and programming languages. But what are things like data structures and algorithms but principles ("laws, so to speak") of the abstract information phenomenon? Linked lists are not direct products of computer hardware, but are rather structures defined by the idea of a node and a reference to another node. Computer science observes, identifies, describes, investigates and explains these abstract information phenomena just like any other science. It describes properties of algorithms (such as how fast it works), and tries to investigate new and faster ways to make these algorithms. The only difference is now the phenomenon is more abstract. Computer science doesn't investigate plants or animals which you can touch. Rather it investigates abstract ideas in our minds that we use to program our computers with. How can that not be a science?



No comments: