A few days ago, I drew the following and posted it on Facebook:
The discussion which then took place was very interesting.
Selven Cheenaramen and Pascal Grosset were in the opinion that Computer Science is not a Science. Selven referred to Jonah Kagan’s post Computer science isn’t a science and it isn’t about computers which states that:
Computer scientists are concerned with questions like: How do you find the shortest route between two points on a map? How do you translate Spanish into English without a dictionary? How do you identify the genes that make up the human genome using fragments of a DNA sequence?
There’s a difference between the question, “How do you identify the genes that make up the human genome?” and the question, “What are the genes that make up the human genome?” The latter, a question posed by biologists, asks for a specific fact, while the former asks for a procedure (an algorithm) which can produce that fact.
Consider any science: chemistry, biology, physics, or even one of the “soft” sciences like psychology. All are concerned with answering factual questions about the world around us. In computer science, the goal is not to figure out the answers to factual questions, but rather to figure out how to get answers. The procedure is the solution. While scientists want to figure out what is, computer scientists want to know how to.
Jonah Kagan then states that, given that Computer Science is not a Science, then it is Mathematics:
Since the problems solved by computer scientists are defined separate from the real world, we can’t use the scientific method to analyze their validity. We can only analyze procedures within the realm of abstraction in which we have created them. Luckily, this type of reasoning is exactly why we have mathematical logic. Mathematicians, too, are concerned with the idea of truth in the abstract. Instead of running experiments, computer scientists define problems and procedures mathematically, and then analyze them using logic. This is the fundamental reason why computer science is not a science.
Given that the correctness of procedures is proved using mathematical logic, it might seem like computer science is really just a branch of mathematics, which it is, in some sense. In fact, much of the “math” we learn in school is actually computation.
He then explains that computers are not essential in Computer Science:
[T]here’s nothing fundamental about procedures that requires the use of computers. Computers aren’t the only tools that can be used to execute programs. For instance, elementary school students are perfectly capable of executing the long division algorithm. We use computers instead of small children because computers are fast and reliable […]
Aha. We just use computers when doing Computer Science because they are fast and reliable. If computers did not exist, we would have done the procedures by hand but the whole process would have been much slower and error-prone.
So it looks like Computer Science is not a Science and is not about computers. But is it? Jonah Kagan acknowledges that:
While at its core, computer science really is the pure study of procedures in the abstract as I described, in reality, the field has grown to encompass a wide variety of pursuits. Some computer scientists are concerned mostly with designing intricate systems that rely heavily on the specifics of computer architecture. Others study human-computer interaction, which actually does use the scientific method to determine what types of interfaces work the best for computer users.
It would be easy to dismiss the outliers and say they are not true computer scientists, that their work falls under the umbrella of some related but fundamentally different field. But I think the breadth of study within computer science is not necessarily a bad thing. It doesn’t need to be strictly defined.
In the end, its the rate of growth of the field that makes all this definition business so tricky. Computer science is still young, and always undergoing new growth spurts.
In other words, Computer Science might become a Science in the future.
Hansley Chadee then offered this very interesting perspective:
Artificial Intelligence is the bridge between all of this (Computer Science) and the natural world, including philosophy…
Aha. My interpretation of this is that, once, we, human beings, invent Artificial Intelligence (and it seems that Google Deepmind has already done so…) then Computer Science becomes a Science as we would have explained the functioning of the natural brain.
Noorani Bakerally then finally stated (I am paraphrasing as I cannot find his post on Facebook):
Do not forget that we, human beings, with our limited capacity, can only understand a small portion of nature. So there is surely more than Science…
Given these compelling evidence (and while AI is not pervasive yet), allow me to update my initial drawing: