The concept of computation has mostly been related to mathematical thinking in the past century. Yet, can we count computer science (CS) as a mathematical science at all? Before answering this question, it might be more relevant to ask whether mathematics could be considered as science at all?
On the one hand, there are the so-called experimental disciplines that look at the physical world in detail; on the other hand, there are rational disciplines like mathematics. Within the field of computing, some branches such as programming can certainly be considered as part of mathematics. In other words, the actual activity of programming can be considered as a mathematical one so that programming languages can be considered as mathematical theories. In a similar vein, the theories of computability and computational complexity can be considered as a mathematical one.
Thinking in Math
In order to be counted as a mathematical discipline, some scholars asserted the fulfillment of some requirements such as:
- Having precise assertions
- Having applicable assertions which can be implemented to a large class of instances
Needless to say, based on a wide range of inputs, programming can make an extraordinary precision based on logical reasoning. Yet, is there a type of generality that programs exhibit similar to the generality made by mathematical assertions? (e.g: For any triangle, the sum of its angles equal to 180 degrees.)
Let’s look at the following algorithm as an example:
Let x be of type integer;
According to this algorithm, the type of input is specified such that the program can be considered as being general in the same way that a mathematical assertion is. Yet, some would argue that an algorithm would also be written to perform an infinite search so that the algorithm would never halt. Yet, this would be a physical limitation rather than a theoretical one.
Same Issue, Different Lenses?
Similar to the technical issues with which the physicists and engineers deal with, technical problems with which the computer scientists struggle on a daily basis are mathematics Let’s see if we can defend this premise: Suppose that we would like to express some literary idea and we write a poem or a story. Would that mean that prose fiction and poetry are the same? Probably not, as these are two different ways of expressing a literary idea. In a similar vein, CS and mathematics investigate the same problem in different ways. Mathematics proves declarative theorems while computer science expresses solutions algorithmically.
There is yet another way to think about the relationship between math and CS. Similar to the different thought processes that mathematicians, physicists or biologists have, lawyers, poets or historians all have different mentalities. As a result, a different approach to knowledge would be taken based on the mode of thinking that one has been accustomed to given his or her occupation. Indeed, C.P. Snow’s famous book about the ‘two cultures’- namely scientific vs. humanistic- deals with these different ways of thinking. Yet, when it comes to dealing with issues in real life, there seems to be more than these two ways of thinking.
Asking the Right Questions
As the famous saying ‘to a hammer everything looks like a nail.’ suggests, one cannot look at things from merely a point of view or assume that everyone might share his or her own perspective. Similar to the case of the hammer, a computer scientist might look at the world in only one way, namely algorithmically. While both mathematical and algorithmic thinking might involve manipulation of formulas, a representation of reality via a means of reduction to simpler problems (e.g: recursion), or abstract reasoning. Algorithmic thinking has a focus on the notion of complexity or the state of a process. Asking questions such as ‘How did I get there?’ or ‘What should happen next in order to get to the end?’ are related to algorithmic thinking. Changing states of affairs or snapshots of computation all relate to algorithmic thinking.
Or Vice versa?
The field of computing certainly amounts to a great scientific domain, on par with the physical and social sciences. Perhaps, instead of CS being a branch of math, math could be seen as a branch of CS!