Because of the youth of the discipline, there are many alternative definitions of computer science. Computer science can be seen either as a science, a form of mathematics, or a new discipline that cannot be categorized into pre-existing frameworks. Most people who study computer science go on to become programmers, leading some to believe that the discipline is the study of software and programming. However most computer scientists are interested in innovative or theoretical aspects of the field that go well beyond programming, and deeply into computability.
Core problems in defining computer science
A major issue is deciding exactly what it is that computer science covers. One of the major areas of contention surrounds the issue of
computability. Computer science can for example be defined as the study of what can be computed (or automated) and how it can be computed. There is a dispute over whether this is defined in a mathematical or a physical (mechanical) context. In essence, mathematics shows us
how to compute, yet the mechanical provides
what can be computed.
An adjunct to this issue is how to define a computer in this context. It could be a real physical machine with inherant weaknesses and limitations, in which case those weaknesses are a valid concern for study. Or, it could be an idealized or theoretical machine in which case practical limitations such as memory space are not important.
Another issue is whether computer science is scientific. Most sciences are concerned with the study of the natural world, whereas computer science studies abstractions and artificial objects. However, artificial objects (such as a digital computer) are usually considered by philosophers as part of the natural world (which is opposed to the "supernatural world").
Youth
Richard Feynmann pointed out that computer science is young, and therefore more volatile than other sciences:
- Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing!
Alternative definitions
ACM definition
According to the
Association for Computing Machinery, "The discipline of computing is the systematic study of algorithmic processes that describe and transform information, their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, 'What can be (efficiently) automated?'" (Computing as a discipline, Communications of the ACM, January 1989). The ACM's term "computing" is defined as "computer science and engineering".
Computer science and other fields
The similarity or difference between computer science and computer engineering and software engineering is also an area of contention. Traditionally, the practice of
engineering has included the application of knowledge from the
physical sciences to help in the design of products and systems, and thus the study of theories of computation has not generally been included within the scope of engineering. However, the growing ubiquity of computers has fueled a change in the scope of modern engineering. For example, the above ACM definition includes computer engineering within its scope, and there are
embedded systems courses in some schools of
electrical engineering that include the study of models of computation.The origins of computer science lie heavily in
mathematics, but unlike mathematics, computer science is often held to be an experimental discipline.
Computer science may be a misnomer
"Science"
Some claim that computer science is not an
experimental science (but this is controversial), and (as with fields such as
political science and, indeed, all the
social sciences) some have considered the name a
misnomer.
Scientific computing, though it sounds similar, is only a tangentially related field involving computer programming for hard- and soft-science applications. Despite these seeming ambiguities, the name
computer science has remained both common and unambiguously well-understood within the field it names.
"Computers"
The name
computer science immediately gives the impression that the field is the study of
computers, the everyday machines that run
programs and perform
computations. Nonetheless, some have argued that the field is both wider and more abstract than this name would suggest. َAs
Edsger Dijkstra mentions:
“Computer Science is no more about computers than astronomy is about telescopes”. Arguably, the comment of Dijkstra refers to a narrow definition of computer (e.g. a digital computer). However, if a computer is defined as the
any physical system or mathematical model in which a computation occures, then the definition of CS as
the science that studies computers is not as narrow as
the science that studies digital computers.
Alternative nomenclature for computer science
Alternative names such as
computing science or
computation science have been proposed, but the traditional name remains the most common.
In French, the discipline is named informatique, in German Informatik, in Spanish informática, in Dutch, Italian and Romanian informatica, in Polish informatyka, in Russian информатика and in Greek Πληροφορική. However, informatics in English is not directly synonymous with computer science; it is actually more equivalent with information science.
Danish scientist Peter Naur thus suggested the term datalogy, to reflect the fact that the scientific discipline revolves around data and data treatment, while not necessarily involving computers. The first scientific institution applying the datalogy term was DIKU, the Department of Datalogy at the University of Copenhagen, founded in 1969, with Peter Naur being the first professor in datalogy. The term is used mainly in the Nordic countries.
In the early days of computing, a number of terms for the practitioners of the field of computing were suggested in the Communications of the ACM 1(4):p.6 -- turingineer, turologist, flow-charts-man, applied meta-mathematician, and applied epistemologist. Three months later in the same journal, comptologist was suggested, followed next year (CACM 2(1):p.4) by hypologist. Recently the term computics has been suggested (IEEE Computer 28(12):p.136).
See also
References
Computer science