08 JULY 2015

Is Computer Science a Science?

Is Computer Science a Science?


When I tell people I am a computer scientist, one question that I am asked is: is computer science a science? This is a question posed not just by those who know little about the subject - it is also the subject of some debate among expert computer scientists. It's been sometimes said that any subject that has the word "science" in its name isn't one.

Well, there is one sense in which computer science is clearly a science. If we understand the term science, as it is often used, to mean any systematic body of knowledge in a particular field. In this context, it's important to point out that computer science is not simply a collection of facts about technologies - current, past or future - it has systematic methods, techniques and ideas that underpin not only modern technology, but go well beyond that.

Yet, there is clearly another sense in which we feel that computer science is not a science like Physics or Biology, and that is why the question keeps coming up. Those well-established sciences are involved in studying well-known natural phenomena that everybody is familiar with while computer science seems to be the study of a particular human artifact. And, it is also true that computer science does not seem to follow what we understand to be the "scientific method" of observation, hypothesis and experiment.

I want to argue, however, that there is nonetheless a way in which computer science is as much of a natural science as, say, chemistry. Indeed, what is the science of chemistry about, and how does it differ from physics? We understand that the world is physical and all natural phenomena are governed by the laws of physics, so why do we need a science of chemistry? The reason is that certain natural physical phenomena are complicated enough that it is useful to forget some of the physical detail of interacting particles and think instead at the more abstract level of molecules so we can describe the phenomena as chemical reactions. In other words, chemistry is just the right level of abstraction at which to describe certain physical phenomena. I would argue that computer science is in a similar position. Certain ways in which we interact with the physical world involve producing and manipulating physical systems that we treat as symbols representing things, such as numbers. Computer science provides the right level of abstraction at which to understand these physical interactions. It is the study of computation, which is those physical phenomena that involve manipulating symbols.

There is another analogy to be made between chemistry and computer science that is more of a historical nature. People have been doing chemistry, that is to say manipulating chemical reactions, for millenia. It probably began with the first cooking fires used by humans and was certainly well-established by the Bronze Age. A step change came in the eighteenth century, with the industrialisation of chemical processes which both made necessary, and was aided by, the turning of the body of knowledge on chemical reactions into a systematic science that we now call chemistry. The story of computer science is similar. People have no doubt been doing computation since the stone-age use of pebbles for counting, and it was certainly well established by the time people in ancient Mesopotamia were recording their calculations on clay tablets. The second half of the twentieth century saw the emergence of technologies for automating computation and doing it on an industrial scale. This both helped create, and was made possible by, the new science that turned our knowledge of computation into a systematic body of knowledge.

There is still more to the story of computer science. When one starts to think of natural phenomena as computational, one begins to see that computation is everywhere - from the biochemical processes that see strands of DNA being duplicated to information leaks from black holes. The study of computer science has generated new ways of looking at the world - what some people call computational thinking - that are infectious. The birth of this new science has heralded not just a technological revolution that has transformed our lives, but also an intellectual revolution that is sweeping across other sciences.


Professor Anuj Dawar is Professor of Logic and Algorithms in the Computer Laboratory at Cambridge University and writes for our Thought Leadership blog. Read Anuj's full career profile.