This page is a stub. You can help expand it.
Ideas, and some possible material, for the page
are on the related discussion page.
Overview
We call it a science, but is it a science?
As Computer Science started to yield its own sons and daughters, computer scientists started to reflect on and ask whether it is basically a science. Over the past years, practitioner of CS and its educators were a collection of people coming from different majors that participate in the subject matter dealt with in CS. An obvious example of these is the engineering discipline. We didn't start to have our professors as people holding a bachelor in CS until the past few years. Such shift is important because now we are more eager to think about the field itself rather than just its practice and work.
Some may ask: Why this question?; why this need to know if CS is a science or not?
Of course, CS doesn't have to fit anywhere; especially since it's a field that serves multiple disciplines and even its research have cross-disciplines investigations. However, demarcating CS from other fields and positioning it as a truly scientific discipline or not is an issue important to non-CS people and for computer scientists as well when it comes to understanding what it is and what its purpose is. Moreover, computer scientists need to have a sense of self, to resolve a certain 'Identity Crisis'. Non-CS people will benefit as well from a clearer understanding of this major element of society.
To base the discussion here, we shall start by stating a valid definition of what a science is; along with a brief foundation to the subject matter. This is the first section of this writing. In the second section, we present the interplay between CS and other fields. Did it affect the way of its practice? Did CS affect the way other sciences are done? Such interplay is necessary for the purpose of our argument here because of an important thing: if we agreed that in order for a field to be a scientific field, it must be using "scientific method". Now, stating CS on its own, we might find out that CS is not adhering to scientific method - making it not a science. But when we get to investigate CS into action with Biology or Physics, we might see that now CS is employing scientific method for its work to be completed - making it now a science. Thus, it is useful to see its relationship with other fields. In the third section, it is represented some of the features thought of as being qualities of true sciences and their contraries to observe if CS would neatly fit into one side or would be of scattered deformed identity among them.
Brief Foundation
|
What is Computer Science? In its formal definition, Computer Science is the study of computers, both hardware and software, and what they can do —the inherent powers and limitations of abstract computers, the design, and characteristics of real computers, and the innumerable applications of computers to solving problems1. In other words, it is the study of the working hardware and software to understand computers and be able to use them to solve real world problems. What is a Computer Scientist? Although Computer Science is a broad discipline with many specializations, computer scientists are those who seek to understand how to represent their solutions about real world problems and/or phenomena. They create languages, design, technologies, electronic hardware, and methods to help design, realize, and operate hardware and software artifacts. And because real world problems come from a diversity of other disciplines, computer scientists seek to have knowledge in other disciplines necessary for them to realize a computing solution for solving a problem. The degree of knowledge varies from a long-term research collaboration between the scientists of involved disciplines to a two dozen of papers describing the solution needed by its procuring entity. |
The 'Science' Word The word 'science' comes from the Latin "Scientia", basically meaning knowledge. In its general sense, science is acquiring knowledge about the world around us.2 However, such a general view of the word is too vague that all man's doing can be considered a science; and of course, science is not the mere accumlation of facts in piles of paper. For this, the use of word in its more restricted sense would be that science is based on scientific method, which refers to the body of techniques for investigating phenomena. That is, there has to be a well-established method by which knowledge about a subject matter is acquired and a method of inquiry based on observation, reasoning, measurable evidence, and experiments to be termed scientific. Based on the Aristotelian view that all humans by nature seek to have knowledge, it can be argued that science has originated with the first form of intelligent creatures on the planet. It is with the Ancient Greek and Chinese cultures that science can first easily be seen, science in this sense of activity based on "scientific methods". This 'simple view' seeemed to be adequate until the dawning of a new 'Scientific Revolution' in the Twentieth Century opened up debate with new ideas in all sciences challenging hte basis of scientific method itself. To sum the above discussion in a more concise way; a discipline is a science if: # It uses "Scientific Method" (i.e. empirical study, observation, and experimentation). # It involves the study of "fundamental principles" of the physical world. Now, this gives our discussion here somehow a sense of direction. In the straightforward sense, if we would be able to take CS and invesigate its facets and show that it adheres to the basic two points of a science definition; then, we should be able to conclude that CS is a science. Alternatively, if we could find a counter example in CS that violates those basice two point; then, the conclusion is that CS is not a true science. On the extreme, we could however argue the validity of such two points to define a science. |
The Origin of Computer Science
Pascal's calculator, a step towards his dream of a thinking machine
Computer Science began to emerge as a distinct field in the 1940s and 1950s with the development of the first electronic computers. This followed centuries of philosophers (such as Leibniz and Pascal) tyring to bring about the dream of a 'thinking machine'. Modern computers owe something to these early theoretical endeavours, laboriously constructed out of cogswheels and levers in a age before even the availability of electricity. A second stage int he development of computers was also theoretical rather than electronic, the work by other initial the mathematician Alan Turing with endeavors such as the Turing Machine.
Today, with their speed and massive memory storage capabilities, computers seem to be an efficient and powerful tool. Naturally, many mathematicians, engineers, economists, and physicists have turned their attention to mastering and enhacing the capabalities of such a tool. But as computers prove to be powerful, absorbing, and open-ended in their potentialities, those who work with them and study them have become, a decade or so later, separate from their original disciplines and are now pioneering a new field.
Computer Science and the 'Identity Crisis'
Demarcating Computer Science from Computers
Should the computer be seen as merely a tool - a laboratory instrument like a chemist's bunsen burner, or a biologist's microscope?
"Computer science is no more about computers than astronomy is about telescopes" Edsger Dijkstra
Let's for a moment consider the Sophisma: Computer Science is not about computers
Now, let's try this thought experiment: Imagine all Computer Science graduates and practitioners in a world without computers. What kind of output they can contribute with? Can they continue to perform some work? If yes, what is it?
After considering this Sophisma and the trying the thought experiment, now let's ask: Did the science existed before the computers or paired with it? For Physics existed and practiced before the invention of tools so does Biology. They were independent of the tools they use; the tools increased their capability, but those sciences were practiced before the introduction of tools to aid them.
Now let's solve! Computer scientists deal with the study of activities outside the use of computers such as design, requirements engineering and so on. But this could be misleading as Dijkstra's quote because for what we study and formulate design, for what we gather requirements? At the end, in order to implement them on computers and for computers. How to clarify this? Simply put, without them, there will be no design and no requirements because simply there are no computers. Understanding the system outside the computers first is not for the sake of understanding a system like Galileo's ability to calculate the distance between stars without tools - for the sake of understanding the system and only it - but we seek to formulate, visualize, and understand the system in order to be able to implement it on computers not for the sake of understanding how an accounting system work or how accountants work. Therefore, the Sophisma resolution is that Computer Science IS about Computers and the reliance on other activities conducted by computer scientists and practictioners without computers involvement to prove that it is not about computers is a wesel argument without any depth because of the reasons stated in the proof here; that these activities are outside computers as a pre-step for the sake of getting to computers afterwards and is NOT totally independent of computers. Even, those activities are conducted under the effect of computers; design is not a free activity, but an activity constrained by computers.
That you played with the thought experiment. What will happen to all the IT companies, software developers, technologists, and computers scientists when there are no computers any more? Well, a serious question that I believe that one day will exceed being just a thought experiment and will be promoted to the reality. This is when we lose all the means of energy in the 21st century and when we deplete our natural resources and fail to manufacture computers. Anyway, let's just consider what we have now, the thought experiment. What will happen? We have to understand very well that in the field of computing, we are NOT the people who are doing (those technologies, automation and such); we are the people who are just instructing and inventing the thing...and that thing is then the thing that will be the doing. If we are totally the people who are doing; then, missing the tool will not still deprive us from doing; we may be partially affected in terms of capability but we will still succeed to do some work just like biology long before without the existence of computers. Therefore, we are the people who are doing something for the computers in order for the computers to do the things we want to do. Thus, without computers, for what we will be doing to? - those designs, architectures, codes, technologies, and algorithms. We use them to talk to computers so that they execute our talking by their ways. Have computers vanish and you won't find anybody to talk to.
Thirdly, which came first the science of computers or computers? It is said and believed that Computer Science is mathematics; thus, accordingly the science of computing is existent long before computers. Again a great pitfall due to some causes. First, computers were first conceived by the work of mathematicians who were finding means of automating tedious and repetitive tasks, initially. Second, computers codes and algorithms are more or less looks like mathematics. Those are misleading that had led to this pitfall. Firstly, we have to differentiate between the machine itself and computer science. At the beginning with those mathematicians that gave the advent to computers were working to invent the mere machine with its operations, but not what came to be computer science. And this continued to be the case for some time since humans had to deal with this bare bone machine. That is, we had to talk the same language of that machine, which is done by mathematics - mostly arithmetics, which is how the processor is executing instructions. But now things have evolved; surprisingly, by means other than mathematics. The invention of high level programming languages that relieved us from writing pure mathematical codes in just arithmetic operations and binary codes is more or less by the conception of what is to be the compiler which handles the mapping between the high level programming language and the very underlying machine code (that was originally the mathematical part). Secondly, computer codes and algorithms look like mathematics but they are not. We are confusing computer science with mathematics in regard to algorithms because computer algorithms share the nucleous of mathematics, which is logic - 1 = 1 = 2. This makes computer algorithms looks like mathematics and creates the confusion, but it is just algorithms are logical as like as mathematics. This is because computers are stupid and the ultimate way to make a stupid person understand is to illustrate with a very restrictive logic that cannot handle any ambiguity or debate - again, 1=1 = 2, to the stupid to accept it without further unique intelligence. So Computer science is not mathematics; it is just mathematics is just the 'first computing machine' but mathematics is not computer science that came to be. It is just sharing a property with it, the logic, and is used in it, which is natural like using anything in CS and it is not sufficient to call something for something just because it is just using it. As such, the science has followed the availability of computers and was not possible to exist without computers. Therefore, computer science came after the existence of computers not before.
It follows from the questions that have been asked and the proposed thought experiment that Computer science is about computers and there is no demarcation between them.
Comparative Characteristics (deformation factors)
Should we interpret Computer Science from the standpoint of a subject emerging from and generating Novelty (conventionally claimed as a feature of true sciences) or should we treat it as being concerned with Product (basically a feature of an engineering discipline)?
Key Questions
Is Computer Science a victim to the way it is taught?
Maybe the mistake that caused its deformed identity is the way its education is done; making its curriculum more computer-centric focusing on coding more than other elements such as design and systems study (a problem already being discussed in the CS education community; to shift CS education focus from coding to other areas). With this current state of CS education, graduates who were good at coding becomes developers, graduates who weren't good at coding (or dislike it) become like "gate-keepers" or "clerks" of any software-related tasks. And those who had the passion to be scientists had to study like "another bachelor" in order to qualify themselves to work in research. We hardly have scientists out of current CS education. Can this be one of the reasons?
- 1Computer Science: reflections on the field by National Research Council
- 2Wikipedia,
http://en.wikipedia.org/wiki/Science


