Diversity of computer science
From Wikipedia, the free encyclopedia
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.
Contents |
[edit] 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 inherent 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").
[edit] Youth
Richard Feynman 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!
[edit] Alternative definitions
[edit] 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".
[edit] 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.
[edit] Computer science may be a misnomer
[edit] "Science"
Some claim that computer science is not an experimental science (but this is controversial, c.f. for example the scope of the workshop on experimental algorithms ([2])), 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.
[edit] "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, for example, see digital physics.
[edit] 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 used to explicitly encompass the study of both natural and artificial systems that store process and communicate information - and this use was introduced to address (or at least sidestep) the difficulties discussed in this article.
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).
[edit] See also
[edit] References
- ↑ University of California, Berkeley Course EE290n, Advanced topics in systems theory: Concurrent models of computation for embedded software.