Dictionary of Meaning
<<Back
Please select a letter:
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
0-9
Click here for Shopping
Computer science
*** Shopping-Tip: Computer science
{{portal}}
'''Computer science''' is the study of the theoretical foundations of
information and
computation and their implementation and application in
computer systems.
[
*"''Computer science is the study of information''" [http://www.njit.edu/v2/archivecatalog/undergraduate/91/19-und.html Department of Computer and Information Science], Guttenberg Information Technologies
*"''Computer science is the study of computation.''" [http://www.csbsju.edu/computerscience/curriculum Computer Science Department, College of Saint Benedict], Saint John's University
*"''Computer Science is the study of all aspects of computer systems, from the theoretical foundations to the very practical aspects of managing large software projects.''" [http://study.massey.ac.nz/major.asp?major_code=2010&prog_code=93068 Massey University]
] Many
diversity of computer science diverse fields exist within the broader discipline of computer science; some emphasize the computation of specific results (such as
computer graphics), while others (such as
computational complexity theory) relate to properties of
algorithms used in performing computations. Still others focus on the problems involved in implementing computations. For example,
programming language theory studies approaches to describing a computation, while
computer programming applies specific
programming languages to craft a solution to some concrete computational problem.
History
{{main|history of computer science}}
The history of computer science predates the invention of the modern
digital computer. Prior to the 1920s, the term ''computer'' referred to a human clerk that performed calculations. Early researchers in what came to be called computer science, such as
Kurt Gödel,
Alonzo Church, and
Alan Turing, were interested in the question of computability: what things can be computed by a human clerk who simply follows a list of instructions with paper and pencil, for as long as necessary, and without ingenuity or insight? Part of the motivation for this work was the desire to develop ''computing machines'' that could automate the often tedious and error-prone work of a human computer.
During the 1940s, as newer and more powerful computing machines were developed, the term ''computer'' came to refer to the machines rather than their human predecessors. As it became clear that computers could be used for more than just mathematical calculations the field of computer science broadened to study
computation in general. Computer science began to be established as a distinct academic discipline in the 1960s, with the creation of the first computer science departments and degree programs {{ref_harvard|Denning2000|Denning 2000|-}}.
Major achievements
{{section-stub}}
Despite its relatively short history as a formal academic discipline, computer science has made a number of fundamental contributions to science and society. These include:
* A formal definition of
computation and
computability {{ref_harvard|Constable2000|Constable 2000|-}}
* Proof that there are computationally
halting problem unsolvable and
Intractable#Intractability intractable problems {{ref_harvard|Constable2000|Constable 2000|-}}
* The concept of a
programming language, a tool for the precise expression of methodological information at various levels of abstraction {{ref_harvard|SICP|Abelson and Sussman 1996|-}}
* Revolutionary technologies such as general-purpose
computers, the
Internet,
digital signatures,
electronic commerce, and
search engines {{ref_harvard|Constable1997|Constable 1997|-}}{{ref_harvard|Constable2000|Constable 2000|-}}
* Enabling new types of scientific research, such as computational physics and computational chemistry {{ref_harvard|Constable1997|Constable 1997|-}}
Relationship with other fields
{{main|Diversity of computer science}}
{{Wikiquotepar|Edsger Dijkstra}}
Despite its name, computer science rarely involves the study of computers themselves. In fact, the renowned computer scientist
Edsger Dijkstra is often quoted as saying, ''"Computer science is no more about computers than astronomy is about telescopes."'' The design and deployment of computers and computer systems is generally considered the province of disciplines other than computer science. For example, the study of
computer hardware is usually considered part of
computer engineering, while the study of commercial
computer systems and their deployment is often called
information technology or
information systems. However, there has been much cross-fertilization of ideas between the various computer-related disciplines. Computer science research has also often crossed into other disciplines, such as
artificial intelligence,
cognitive science,
physics (see
quantum computing), and
linguistics.
Computer science is considered by some to have a much closer relationship with
mathematics than many scientific disciplines {{ref_harvard|Denning2000|Denning 2000|-}}. Early computer science was strongly influenced by the work of mathematicians such as
Kurt Gödel and
Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as
mathematical logic,
category theory,
domain theory, and
algebra.
The relationship between computer science and
software engineering is a contentious issue, which is further muddied by
Debates within software engineering disputes over what the term "software engineering" means, and how
Diversity of computer science computer science is defined. Some people believe that software engineering is a subset of computer science. Others, taking a cue from the relationship between other engineering and science disciplines, believe that the principle focus of computer science is studying the properties of computation in general, while the principle focus of software engineering is the design of specific computations to achieve practical goals, making them different disciplines. This view is promulgated by (among others)
David Parnas {{ref_harvard|Parnas1998|Parnas 1998|-}}. Still others maintain that software cannot be engineered at all.
Fields of computer science
{{section-stub}}
Mathematical foundations
;
Cryptography
: Algorithms for protecting private data, including
encryption.
;
Graph theory
: Foundations for data structures and searching algorithms.
;
Mathematical logic
: Boolean logic and other ways of modelling logical queries.
;
Type Theory
: Formal analysis of the types of data, and the use of these types to understand properties of programs -- especially program safety.
Theory of computation
;
Automata theory
: Different logical structures for solving problems.
;
Computability theory (computer science) Computability theory
: What is calculable with the current models of computers.
;
Computational complexity theory
: Fundamental bounds (especially time and storage space) on classes of computations.
Algorithms and data structures
;
Analysis of algorithms
: Time and space complexity of algorithms.
;
Algorithms
: Formal logical processes used for computation, and the efficiency of these processes.
;
Data structures
: The organization of and rules for the manipulation of data.
Programming languages and compilers
;
Compilers
: Ways of translating computer programs, usually from
high-level programming language higher level languages to
low-level programming language lower level ones. Based heavily on mathematical logic.
;
Programming languages
: Formal language paradigms for expressing algorithms, and the properties of these languages (EG: what problems they are suited to solve).
Databases
;
Data mining
: Study of algorithms for searching and processing information in documents and databases; closely related to
information retrieval.
Concurrent, parallel, and distributed systems
;
Concurrency (computer science) Concurrency
: The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
;
Computer networking Networking
: Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including
error correction.
;
Parallel computing
: Computing using multiple concurrent threads of execution.
Computer architecture
;
Computer architecture
: The design, organization, optimization and verification of a computer system, mostly about
CPUs and
Memory (computers) Memory subsystem (and the bus connecting them).
;
Operating systems
: Systems for managing computer programs and providing the basis of a useable system.
;
Human computer interaction
: The study and design of computer interfaces that people use.
Software engineering
;
Computer programming
: The act of writing algorithms in a
programming language.
;
Formal methods
: Mathematical approaches for describing and reasoning about software designs.
;
Software engineering
: The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
Artificial intelligence
;
Artificial intelligence
: The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own.
;
Automated reasoning
: Solving engines, such as used in
Prolog, which produce steps to a result given a query on a fact and rule database.
;
Robotics
: Algorithms for controlling the behavior of robots.
;
Computer vision
: Algorithms for identifying three dimensional objects from a two dimensional picture.
;
Machine Learning
: Automated creation of a set of rules and axioms based on input.
Computer graphics
;
Computer graphics
: Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
;
Image processing
: Determining information from an image through computation.
Scientific computing
;
Bioinformatics
: The use of computer science to maintain, analyse, store biological data and to assist in solving biological problems such as protein folding.
Computer science education
Some universities teach computer science as a theoretical study of computation and algorithmic reasoning. These programs often feature the
theory of computation,
analysis of algorithms,
formal methods,
Concurrency (computer science) concurrency theory,
databases,
computer graphics and
systems analysis, among others. They typically also teach
computer programming, but treat it as a vessel for the support of other fields of computer science rather than a central focus of high-level study.
Other colleges and universities, as well as
secondary schools and vocational programs that teach computer science, emphasize the practice of advanced
computer programming rather than the theory of algorithms and computation in their computer science curricula. Such curricula tend to focus on those skills that are important to workers entering the software industry. The practical aspects of computer programming are often referred to as
software engineering. However, there is a lot of
Debates within software engineering disagreement over what the term "software engineering" actually means, and whether it is the same thing as programming.
{{mergefrom|Bachelor of Computer Science#Typical Degree Requirements}}
See also
*
Computing
*
List of basic computer science topics
*
List of computer science conferences
*
List of open problems in computer science
*
List of publications in computer science
*
List of prominent pioneers in computer science
*
List of software engineering topics
Notes
References
*
Association for Computing Machinery. [http://www.acm.org/class/1998/overview.html 1998 ACM Computing Classification System]. 1998.
*
IEEE Computer Society and the
Association for Computing Machinery. [http://www.computer.org/portal/cms_docs_ieeecs/ieeecs/education/cc2001/cc2001.pdf Computing Curricula 2001: Computer Science]. December 15, 2001.
* {{note_label|SICP|Abelson and Sussman 1996|-}} H. Abelson and G.J. Sussman with J.Sussman (1996) ''Structure and Interpretation of Computer Programs, 2nd Ed.'', MIT Press, 1996, ISBN 0-262-01153-0
* {{note_label|Denning2000|Denning 2000|-}} P.J. Denning (2000), [http://www.idi.ntnu.no/emner/dif8916/denning.pdf "Computer science:the discipline"], ''Encyclopedia of Computer Science'', 2000
* {{note_label|Constable1997|Constable 1997|-}} R.L. Constable (1997) [http://www.cs.cornell.edu/cis-dean/Nature.pdf "Nature of the Information Sciences"].
* {{note_label|Constable2000|Constable 2000|-}} R.L. Constable (2000) [http://www.cs.cornell.edu/cis-dean/bgu.pdf "Computer Science : Achievements and Challenges circa 2000"], March 2000.
* {{note_label|Parnas1998|Parnas 1998|-}} D.L. Parnas (1998), "Software Engineering Programmes are not Computer Science Programmes", ''Annals of Software Engineering'', vol. 6, 1998, pgs. 19-37
External links
{{wikibooks}}
{{wikibookspar|Wikiversity|School of Computer Science}}
-
Open Directory Project: Computer Science
-
Collection of Computer Science Bibliographies
Category:Computer science
af:Rekenaarwetenskap
ar:علم Ø§Ù„ØØ§Ø³ÙˆØ¨
ast:Informática
bs:Informatika
bg:Информатика
bn:কম�পিউটার বিজ�ঞান
br:Urzhiataerezh
ca:Informà tica
cs:Informatika (poÄ?ÃtaÄ?ová vÄ›da)
csb:Infòrmatika
da:Datalogi
de:Informatik
el:Επιστήμη Υπολογιστών
es:Ciencias de la computación
eo:Komputiko
et:Informaatika
fa:علم رایانه
fr:Informatique
fy:Ynformatika
ga:RÃomheolaÃocht
gl:Informática
he:מדעי המחשב
ko:컴퓨터 과학
hr:RaÄ?unarstvo
id:Ilmu komputer
ia:Informatica
ie:Informatica
io:Informatiko
it:Informatica
iu:�ᓴ�ᒪᖃᑦᑕ�ᑎᔾᔪᑎᓂᒃ ��ᓚᑦᑎᔩᑦ
jbo:samske
lb:Informatik
hu:SzámÃtástechnika
li:Informatica
ml:കംപ�യ�ട�ടര�� ശാസ�ത�രം
nl:Informatica
ja:æƒ…å ±å·¥å¦
lv:DatorzinÄ?tne
no:Informatikk
oc:Informatica
pl:Informatyka (technika)
pt:Ciência da computação
ro:Informatică
ru:Информатика
simple:Computer science
sl:RaÄ?unalniÅ¡tvo
sr:РачунарÑ?тво
fi:Tietojenkäsittelytiede
sv:Datavetenskap
tl:Agham pangkompyuter
th:วิทยาà¸?ารคà¸à¸¡à¸žà¸´à¸§à¹€à¸•à¸à¸£à¹Œ
vi:Khoa há»?c máy tÃnh
tr:BiliÅŸim bilimi
zh:计算机科å¦
see
Computer science
{{portal}}
{{sisterlinkswp|Category:Computer science}}
'''Computer science''' is the study of the theoretical foundations of
information and
computation, and their implementation and application in
computer systems.
In practice, computer science includes a variety of topics relating to
computers, which range from the abstract analysis of
algorithms,
formal grammars, etc. to more concrete subjects like
programming languages,
software, and computer
hardware. As a scientific discipline, it is distinct from
mathematics,
programming,
software engineering,
informatics, and
computer engineering, although there are significant overlaps and no clear demarcation.
{{catmore}}
{{CategoryTOC}}
Category:Computing Science
Category:Academic disciplines
Category:Science
af:Kategorie:Rekenaarwetenskap
an:Category:Informatica
bs:Category:RaÄ?unarstvo
bg:КатегориÑ?:Компютърни науки
ca:Categoria:Informà tica
cs:Kategorie:Informatika
da:Kategori:Datalogi
de:Kategorie:Informatik
el:ΚατηγοÏ?ία:Επιστήμη Υπολογιστών
es:CategorÃa:Informática
eo:Kategorio:Komputiko
eu:Kategoria:Informatika
fr:Catégorie:Informatique
io:Category:Informatiko
id:Kategori:Ilmu komputer
it:Categoria:Informatica
csb:Kategòrëjô:Infòrmatika
la:Categoria:Informatica
lv:Category:DatorzinÄ?tne
lmo:Category:Scenza di urdenatuur
nl:Categorie:Informatica
ja:Category:æƒ…å ±å·¥å¦
no:Kategori:Informatikk
oc:Categoria:Informatica
pl:Kategoria:Informatyka
pt:Categoria:Ciência da computação
ro:Categorie:Informatică
ru:КатегориÑ?:Информатика
simple:Category:Computer science
sl:Kategorija:RaÄ?unalniÅ¡tvo
sv:Kategori:Datavetenskap
tl:Category:Agham pangkompyuter
th:Category:วิทยาà¸?ารคà¸à¸¡à¸žà¸´à¸§à¹€à¸•à¸à¸£à¹Œ
vi:Thể loại:Khoa há»?c máy tÃnh
tr:Kategori:Bilgisayar
uk:КатегоріÑ?:Інформатика
zh:Category:计算机科å¦
see
Portal:Information technology
see
Portal:Information technology
see
:WikiProject Computer science
*** Shopping-Tip: Computer science