`science` back into `Computer Science` - National e

Why computer scientists need to put the ‘science’ back into ‘Computer Science’
Ajit Narayanan, School of Engineering and Computer Sciences, Harrison Building,
University of Exeter, Exeter EX4 4QF. Email: [email protected]
My colleagues in biology, chemistry and physics take great delight in telling me that
computer science is not a science, never has been a science, and never will be a science. They
say that science is about making discoveries in the real world, and if there is one thing in their
experience that computer science does not deal with, it’s the real world. Of course, I go
through well-rehearsed arguments. Turing made a major real-world discovery when he
identified the limits of computability; Hofstadter identified similarities between recursion in
art, music, logic, molecular biology and computability. Computer scientists discovered new
methods for public key encryption that changed our understanding of cryptography.
‘Computer science is a science,’ I say, ‘in that it’s the science of the artificial.’ I just get a wry
smile from scientific colleagues, followed up by this sort of comment: ‘By the way, did you
know that we have just appointed x researchers [put in your own value for x depending on the
size of your own chemistry, physics and biology departments] who have to write a lot of
software for us as part of their research programmes, and none of them has a computer
science degree. But they’re red hot programmers and they get the job done.’ Underlying this
statement is the presumption that scientists’ software (much of which can indeed be more
complex than anything written by computer science PhD students but warrants no more than a
brief description in a footnote or appendix to a paper or thesis) is used to help make
discoveries about the real world. Their belief is that this is unlike much software produced by
computer scientists, which just helps the artificial worlds of commerce and industry at best.
I think many computer scientists up and down the country will have had first hand experience
of this sort of attitude. What is interesting is that, rather than accepting that scientists may
perhaps have a point, we become defensive and brush these comments under the carpet. This
helps neither the discipline nor graduates of the discipline. If our graduates cannot naturally
and easily move into traditional sciences and help make discoveries through their
computational skills as members of research teams, then we really do have a problem. The
problem can be traced, quite simply, to the way computer science has developed in the last 30
years, with increased emphasis on theory (or rather, formal models of toy systems) and
methods. The end-result, in my view, is a serious crisis for computer science research which
is obscured by healthy student numbers. If these numbers fall for some reason (e.g. students
switch to biotechnology, psychology or astronomy, which currently get the best, or worst (!),
press), it really is debatable as to what constitutes the essential scientific core of the subject. It
is not too difficult to imagine a great deal of current computer science research being
relocated to other disciplines as well as industry (for the design and implementation of
efficient, reliable software systems), if the worst case scenario arises where computer science
departments are closed down. What exactly would we miss? The grand challenge for
computer science at the start to the new millennium, therefore, is how to put the word
‘science’ back into ‘computer science’, because almost without exception no one in the
traditional sciences currently believes that computer science is a science or makes any real
contribution to the sciences. My point is that, if the discipline is not to disappear through
sheer irrelevance to modern day science, we must address this issue head on. After 50 years,
this would be a sorry way to see the discipline go, but this may be a logical outcome of the
‘success’ of computing: nearly everyone who can afford a computer has one and can use it for
their intended purposes without needing a computer science degree, as far as current computer
science degrees are concerned. The grand challenge for computer science is to accept this fact
and move on from there.
There may be a tendency among computer scientists to focus on definitions of ‘science’, with
retorts that if scientists cannot even define their own disciplines then who is to say what is a
science. Also, computer scientists can accuse scientists of naïve realism with regard to the real
world. However, the problem is that scientists know what a science is even if they can’t pin it
down in precise terms, and scientists know that computer science currently is not a science.
Note that this does not mean that computers are irrelevant to their sciences, however. Far from
it. Somehow, a gap has opened up between the computational tools of the scientists and the
profession that is meant to research into the proper use of these tools.
Here is how I would state the aims of the grand challenge to computer science.
Aim 1: Use computers primarily to make discoveries about the real world.
Aim 2: Use computers so that they can help solve hard scientific problems.
By ‘real world’ I mean the world that science studies, from the macroscopic (physical entities
and processes in earth sciences, in organisms and within molecule) to the microscopic
(atomic) to the quantum to the superstring.
My objectives follow naturally from these aims. Quite simply, the objective is that computer
scientists, if they wish to be labelled as such, should be leading, or attached to, scientific
projects and so help make discoveries or predictions about the world. What sort of projects do
I have in mind? Here is a brief list of some big questions in the three main sciences. The task
is for computer scientists to bring their computational knowledge and skills to bear on these
topics and so to make, or help make, new discoveries which have so far eluded the scientists.
There is an urgent need to adapt what we have learned so far about distributed and parallel
computing, about genetic algorithms and databases, about machine learning and pattern
recognition techniques, to name just a few areas, to the solution of real problems of science.
Biology: Help determine the 3D structure of a protein from its primary sequence. Help reverse
engineer gene and proteomic networks from rapidly proliferating microarray (gene and
protein chips) data. Help find and categorise genes in genomes. Help simulate a whole cell to
understand intracellular processes, which can be more complex than any network of
computers currently in existence. Help model the most complex supercomputer known to us –
the human body made up of about 1015 cells. Help model DNA for genetic engineering
(cloning) to lead to better in silico models of drug discovery that in turn require fewer animal
experiments. Help identify ways in which DNA can be used for computation.
Chemistry: Help model the way that molecules form and dissolve to identify new solutions
for toxic and nuclear waste management problems. Help in the construction of new materials
that are biodegradable. Help in the development of new forms of efficient and renewable
energy.
Physics: Help developments in quantum algorithms and quantum computing so that we can
control quantum computers, if and when they exist. Help write simulation software that
models the big bang and the formation of the first stellar masses, galaxies and black holes.
Help develop models of special and general relativity as well as string theory.
I could go on, but I think I’m almost finished. (I have not included topics in Geology,
Palaeontology, Geography, Archaeology or Medicine here for the sake of brevity.) If my
objective is to be realised, we have a radically different computer science. We teach computer
science students the processes of the real world (the world of science), using algorithms and
appropriate data structures to convey the essential properties of biological, chemical and
physical systems. That is, we teach our students all about how to view physical, chemical and
biological processes as algorithmic. Such teaching can only come from research into how
scientific processes can be represented in algorithmic terms. After all, Turing did conjecture
that all physical processes are computational. Well, let’s teach students these computational
processes. But that means teaching them some of the real sciences and those parts of the real
sciences that lend themselves to a computational approach, with a view to students then
applying the computational approach to other, not so well-understood scientific processes and
phenomena. My science, our science, unless it does something radical to shift itself into
mainstream sciences, may soon be a footnote in the history books, possibly like alchemy.
In conclusion, here are four big questions (grand challenges) which computer scientists can
help, and must help, resolve as scientists. First, what were the conditions that gave rise to the
Big Bang, and what can we infer about the conditions which existed before the Big Bang?
Second, we can imagine a totally dead universe after the Big Bang, but about 3.5 billion years
ago something remarkable happened on this planet. How did something that was alive come
from dead matter? Third, we can imagine a world of singe cell creatures (as probably life on
Mars was), but about 900 million years ago on this planet, another remarkable event occurred.
Instead of two single cell organisms trying to chase each other or run away from each other,
these two organisms somehow fused to form the very first multicellular organism. So
successful was this architecture that within 300 million years we had extremely complex and
large multicellular creatures wandering around our planet. And fourth, we can imagine a
world full of multicellular creatures with little or no intelligence. There is no evidence that
dinosaurs, although they were around for 160 million year or so, ever looked up into the sky
to ask themselves what was out there. Dinosaurs did not go to university, did not build theme
parks or invent anything. And we know, we think, what happened to them. But within
200,000 years of coming into being, another species on this planet has launched spacecraft to
look for passing asteroids and has organised itself to search for extra-terrestrial life. How
come? Of course, cognitive science and artificial intelligence can address this last problem if
they base their research programmes on what is currently known about cognition and
intelligence (biology, principally), rather than what they wish the world to be (silicon-based).
It is clear that computer science does not address any of the first three big questions of
science, and only through one or two subdisciplines does it address the fourth, albeit
peripherally. So what is the overall aim of computer science, given these four big questions
above? The ‘central dogma’ in computer science is that all processes are computational,
including physical (i.e. real world) processes. Let us go back to the roots of the discipline and
rebuild it as a science to determine exactly where the physical (including chemical and
biological) limits of computing lie. We can then take the sciences on to the next stage through
the development of genuinely new computational paradigms which are scientifically driven,
once these limits are identified. We must become a leading science rather than one that is
currently adrift from the sciences.
Finally, here is an evaluation of my grand challenge in terms of the criteria of maturity.
It arises from scientific curiosity about the foundation, the nature or the limits of a scientific
discipline. Definitely. My point is that this curiosity has been either lost or ignored by the
computer science community.
It gives scope for engineering ambition to build something that has never been seen before. I
would prefer it if the discipline, similar to other scientific disciplines, had the goal of
discovering something that was not known before. Leave engineering to the engineers.
It will be obvious how far and when the challenge has been met (or not). I would hope to see a
Nobel prize awarded in my lifetime to a computer scientist for the contribution made to a
major scientific discovery. If computer science is a science, why has this not happened yet?
Major prizes have been awarded in molecular biology, for instance, a discipline which is as
‘young’ as computer science. And how many computer scientists are involved in SETI, have
heard of it, or refer to it in lectures on parallel and distributed computing?
(http://www.computer.org/cise/articles/seti.htm)
It has enthusiastic support from (almost) the entire research community, even those who do
not participate and do not benefit from it. I believe my grand challenge questions the very
basis on which most computer science research is carried out. I doubt whether this would be
popular.
It has international scope: participation would increase the research profile of a nation.
Definitely. By becoming a genuine science, computer science would be truly international,
just like the other sciences.
It is generally comprehensible, and captures the imagination of the general public, as well as
the esteem of scientists in other disciplines. It would be great to see a computer science item
on the front page of the leading newspapers or reported on the television, just like the recent
item concerning the discovery of a black hole at the centre of our galaxy.
It was formulated long ago, and still stands. The Church-Turing Thesis is the Central Dogma
of computer science and is now long forgotten. My proposal would take us back to this dogma
for computational and empirical testing.
It promises to go beyond what is initially possible, and requires development of
understanding, techniques and tools unknown at the start of the project. Once we become
scientists, all our endeavours will lead to new knowledge about the real world. This will
require the design and development of novel algorithms for specific problems and tasks.
It calls for planned co-operation among identified research teams and communities. We
computer scientists need to be much more knowledgeable about the sciences so that we can
contribute on equal terms with research group members.
It encourages and benefits from competition among individuals and teams, with clear criteria
on who is winning, or who has won. Once scientific research teams have computer science
input, competition to write original, ground-breaking software and thereby make new
discoveries and predictions will intensify considerably. The recent discovery of a black hole
at the centre of our Milky Way galaxy, for instance, was partly based on novel algorithms for
improving image resolution (Andrea Ghez, Professor of Physics and Astronomy).
It decomposes into identified intermediate research goals, whose achievement brings
scientific or economic benefit, even if the project as a whole fails. The only way this criterion
can be satisfied is if computer science makes genuine scientific contributions, in line with my
proposal.
It will lead to radical paradigm shift, breaking free from the dead hand of legacy. I like to
think of my proposal as ‘back to basics’. The legacy referred to is just 20 or 30 years old,
arising from a mistaken belief that writing software to solve scientific problems (in Fortran,
mainly) was not a computer science activity.
It is not likely to be met simply from commercially motivated evolutionary advance. A big
problem for computer science is that most of the advances in software come from the
commercial sector in the first place (e.g. game and graphics engines, database packages,
networking, real-time systems, operating systems). Perhaps we should leave commerce and
industry to do their own thing and instead focus on increased understanding of the real world,
bringing benefit to humankind through advances in our scientific knowledge rather than
commercially motivated devices?