As the first semester wraps up, I reflect on my teaching and decided to discuss a question that has been on my mind, is Computer Science a Natural Science? In my Theory of Knowledge course, we examine the natural sciences as an area of knowledge and make definitions for what natural science is and isn’t. The traditional view of the natural sciences includes physics, chemistry, and biology. However, in the modern era, these categories are expanding along with societies view of them. For example, the I.B. now has moved Computer Science into the natural sciences section of it’s disciples along with some other non-traditional “sciences” like Sports & exercise. This paradigm shift has caused many to question the broadening definition, and is moving away from what “science” stands for. The traditional view of Computer Science was to see it as an offshoot of mathematics or engineering, but can it fit the definition for being a “science”? A working definition of “science” could be that it is a method to speculate through hypothesis, define models to explain phenomenon and behaviors, make predictions, execute testing, and refine and re-examine as necessary (therefore restarting the method in a self-correcting manner). There is no doubt that science follows a method often called the “scientific method” but the actual order and classification of the steps in that method are often contestable. The traditional view of the scientific method is know as inductivism and consists of five key concepts:
Here we see some similarities to the discipline of Computer Science, but also some vital differences. The most striking difference between Computer Science and traditional natural sciences like physics, chemistry and biology is that those disciplines study the natural world, and Computer Science tend to study man-made objects. This is also the argument why mathematics is not a science as it conceptually studies man-made concepts within mathematics. But perhaps the definition of “natural science” is not meaningful here, and instead we should just focus on the definition of “science”. If we can define science as a method, then Computer Science can be shown to follow specific methods like traditional inductivism. Recently, the University of Manitoba’s chapter of the national Let’s Talk Science (LTS) program included a new workshop on Computer Science. This organization is described on their website as:
Let’s Talk Science is an award-winning, national, charitable organization. We create and deliver unique learning programs and services that engage children, youth and educators in science, technology, engineering and math (STEM)
And the U of M has added a workshop on Computer Science that one volunteer described as a highlight of this year’s workshops. The workshop called “Crazy Cryptography” teaches the basic tenets of Computer Science. By taking something like a video game and breaking it down into small tasks that are feasible for each individual to do. This can show kids that computer programming is more of a teamwork challenge. It also shows kids how to code – like a secret message. It gets kids to understand that you need to have the programming side of the message to get the other half of the message. It’s important, she says, because basic computer programming skills are not emphasized in schools, even though computers are ubiquitous. Do these examples of Computer Science being treated like a science add to it’s legitamacy? Or does the definition of science and the general understanding of science still leave Computer Science insufficient in it’s ability to meet the criteria? Peter Denning has stated “Computer science meets every criterion for being a science, but it has a self-inflicted credibility problem.” and wrote a short paper on the matter. In my opinion, Computer Science is not a “natural science” but can be defined as a “science”.