Computer Science: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Automated conversion
No edit summary
Line 1: Line 1:
In its most general sense, '''computer science''' ('''CS''') is the study of [[computation]] and [[information processing]], both in [[computer hardware|hardware]] and in [[software]]. In practice, computer science includes a variety of topics relating to [[computer]]s, which range from the abstract analysis of [[algorithms]] to more concrete subjects like [[programming language]]s, software, and computer hardware. As a scientific discipline, it differs significantly from [[mathematics]], [[programming]], [[software engineering]], and [[computer engineering]], although these fields are often confused.
#REDIRECT [[Computer science]]

:''Computer science is no more about computers than astronomy is about telescopes.''
:: - [[Edsger Dijkstra]]

:''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!''
:: - [[Richard Feynman]]



The [[Church-Turing thesis]] states that all known kinds of general computing devices are essentially equivalent in what they can do, although they vary in time and space efficiency. This thesis is sometimes treated as the fundamental principle of computer science. Most research in computer science has been related to [[von Neumann machine|von Neumann computer]]s or [[Turing machine]]s (computers that do one small, deterministic task at a time), because they resemble most real computers in use today. Computer scientists also study other kinds of machines, some practical (like [[Parallel computers|parallel]] machines) and some theoretical (like [[Random computer|random]], [[Oracle (computer science)|oracle]] and [[Quantum computers|quantum]] machines).

Computer scientists study what programs can and cannot do ([[computability]] and [[artificial intelligence]]), how programs should efficiently perform specific tasks ([[algorithms]]), how programs should store and retrieve specific kinds of information ([[data structures]]), and how programs and people should communicate with each other ([[user interface]]s and [[programming languages]]).

Computer science has roots in [[electrical engineering]], [[mathematics]] and [[linguistics]]. In the last third of the [[20th century]] computer science has become recognized as a distinct discipline and has developed its own methods and terminology.

The first computer science department in the United States was founded at [[Purdue University]] in [[1962]]. The [[University of Cambridge]] in England, among others, taught CS prior to this, however at the time, CS was seen as a branch of mathematics, and not a separate department. Cambridge claims to have the world's oldest taught qualification in computing. Most universities today have specific departments devoted to computer science.

The highest honor in computer science is the [[Turing Award]].

== Related fields ==

Computer science is closely related to several other fields. These fields overlap considerably, though important differences exist

* [[Information science]] is the study of data and information, including how to interpret, analyze, store, and retrieve it. Information science started as the foundation of scientific analysis of [[communication]] and [[database]]s.
* [[Programming]] emphasizes writing code, which differs substantially from CS.
* [[Software engineering]] emphasizes analysis, design, and construction of useful software using contemporary tools and practices.
* [[Information systems]] is the application of computing to support the operations of an organization: operating, installing, and maintaining the computers, software, and data. [[Management information systems]] is a key subfield that emphasizes financial and personnel management.
* [[Mathematics]] shares many techniques and topics with computer science, but is more general. In some sense, CS is the mathematics of computing.
* [[Computer engineering]] is about the analysis, design, and construction of computer hardware.
* [[Information security]] is about the analysis and implementation of information system security (cryptography is included).

== Major fields of importance for computer science ==

=== Mathematical foundations ===
* [[Boolean algebra]]
* [[Discrete mathematics]]
* [[Graph theory]]
* [[Information theory]]
* [[Symbolic logic]]
* [[Probability]] and [[Statistics]]

=== Theoretical computer science ===
* [[Algorithmic information theory]]
* [[Computability theory]]
* [[Cryptography]]
* [[Formal semantics]]
* [[Computation|Theory of computation]] (or ''theoretical computer science'')
** analysis of [[algorithm]]s and problem [[Computational complexity theory|complexity]]
** logics and meanings of programs
** [[Mathematical logic]] and [[Formal language]]s
* [[Type theory]]

=== Hardware ===
(see also [[electrical engineering]])
* [[Control structures]] and [[Microprogram]]ming
* [[Arithmetic]] and [[data structures|Logic structures]]
* [[Memory]] structures
* [[input/output]] and [[Communications|Data communications]]
* [[Logic]] Design
* [[Integrated circuits]]
** [[Very-large-scale integration|VLSI design]]
* [[Performance tuning|Performance]] and reliability

=== Computer systems organization ===
(see also [[electrical engineering]])
* [[Computer architecture]]
* [[Computer network]]s
** [[Distributed computing]]
* [[Performance tuning|Performance of systems]]
* [[Computer system]] implementation

=== Software ===
* [[Computer program]] and [[Computer programming]]
** [[Parallel Programming]]
** [[Program specification]]
** [[Program verification]]
* [[Computer programming|Programming techniques]]
* [[Software engineering]]
** [[Software optimization|Optimization]]
** [[Software metric]]s
** [[Configuration management]] and Software Configuration Management ([[SCM]])
** [[Structured programming]]
** [[Object-oriented programming|Object orientation]]
** [[Design pattern (computer science)|Design patterns]]
** [[Free software]] and [[Open Source]]
* [[Programming language]]s
* [[Operating Systems]]
* [[Compiler]]s
** [[Lexical analysis]]
** [[Parsing]]

=== Data and information systems ===
* [[Data structure]]s
* Data storage representations
* Data [[encryption]]
* [[Data compression]]
* [[Computer programming|Coding]] and [[Information theory]]
* [[Computer file|Files]]
** [[File format]]s
* [[Information systems]]
** [[Database]]s
** [[Memory|Information Storage]] and [[Information retrieval|retrieval]]
** Information Interfaces and Presentation

=== Computing methodologies ===
* [[Algebra|Symbolic and Algebraic manipulation]]
* [[Artificial intelligence]]
* [[Computer graphics]]
* [[Image processing]] and [[computer vision]]
* [[Pattern recognition]]
** [[Speech recognition]]
* [[Simulation]] and [[Modeling]]
* [[Document]] and [[Word processing|text processing]]
* [[Digital signal processing]]

=== Computer applications ===
* Administrative data processing
* Mathematical software
** [[Numerical analysis]]
** [[Automated theorem proving]]
** [[Computer algebra]]
* [[Physical science]] and [[Engineering]]
** [[Computational chemistry]]
** [[Computational physics]]
* [[Biology|Life]] and [[Medicine|medical sciences]]
** [[Bioinformatics]]
** [[Computational Biology]]
** [[Medical informatics]]
* [[Social sciences|Social]] and [[Behavioral science|behavioral sciences]]
* [[Arts]] and [[Humanities]]
* [[Computer-aided engineering]]
* [[Robotics]]
* [[Human-computer interaction]]
** [[Speech synthesis]]
** [[Usability engineering]]

=== [[Computing]] milieux ===
* [[Computer industry]]
* [[History of computing hardware]]
* [[Computers and education]]
* [[Computers and society]]
** [[Computer supported cooperative work]]
* [[Legal aspects of computing]]
* Management of computing and [[Information systems]]
* [[Personal computing]]
* [[Computer security|Computer]] and [[information security]]

== History ==
* [[History of computing]]
* [[List of computer term etymologies|Origins of computer terms]]
* [[Early programming projects]]
* [[Computer science departments]]
* [[Timeline of algorithms]]

== Prominent pioneers in computer science ==
* [[Charles Babbage]], Designed but never completed plans for several [[difference engine|mechanical calculators]] and one [[analytical engine|mechanical programmable computer]].
* [[John Backus]] Invention of FORTRAN, the first practical high-level programming language and the [[Backus-Naur form]] for describing formal language [[syntax]].
* [[James W. Cooley]] and [[John W. Tukey]] The [[Cooley-Tukey FFT algorithm|Fast Fourier Transform]] and its impact on scientific research.
* [[Ole-Johan Dahl]] and [[Kristen Nygaard]], inventors of the proto-object oriented language [[SIMULA]].
* [[Edsger Dijkstra]] for algorithms, [[Goto|Goto considered harmful]], rigor, and pedagogy.
* Admiral [[Grace Hopper|Grace Murray Hopper]], for doing pioneer work in the 1940s, one of the first the recognize the necessity for higher level programming languages. She wrote the [[compiler]]. Her ideas heavily influenced the [[COBOL]] language.
* [[Kenneth Iverson]] Inventor of [[APL programming language|APL]], for his contribution to interactive computing.
* [[William Kahan]] for the IEEE [[floating-point]] standard. (Perhaps this reference should be moved to hardware engineering)
* [[Donald Knuth]] for ''[[The Art of Computer Programming]]'' series.
* [[Ada Lovelace]] famous as the world's first ever [[computer programmer]].
* [[John von Neumann]] for devising the [[von Neumann architecture]] upon which most modern computers are based.
* [[Claude E. Shannon]] for [[information theory]].
* [[Alan Turing]] for [[computability theory]], and designed Pilot ACE,
* [[James H. Wilkinson]] The technique of "backward error analysis" and advances in the field of [[matrix computations]]. Wilkinson was also a principal mover in the development of the [[Pilot ACE]], the first British computer, in the late 1940s. (see more on Wilkinson in the MacTutor Biographies.)
* [[Konrad Zuse]] Builder of the first binary computer in the 1930s, for which he devised a programming language considered ahead of its time.

See [[list of computer scientists]] for many more notables.

== See also ==

* [[Computing]]
* [[History of computing]]
* [[History of computing hardware]]
* [[Turing Award]] ([[ACM]])
* [[IEEE John von Neumann Medal]]
* [[Computer jargon]]
* [[Jargon file|Computer slang]]
* [[Computer science basic topics]]
* [[Computing analogies]]
* [[Internet]]
* [[Multimedia]]
* [[Data acquisition]]
* [[Benchmark]]
* [[Sensor network]]
* [[Online computations and algorithms]],
* [[Computer numbering formats]]
* [[List of important publications in computer science]]

== External link ==
*[http://www.mills.edu/ACAD_INFO/MCS/SPERTUS/Gender/gender.html ''Women and Computer Science'' by Ellen Spertus]

[[af:Rekenaarwetenskap]]
[[ar:علم الحاسبات]]
[[bg:Информатика]]
[[ca:Informàtica]]
[[cs:Počítače]]
[[da:Datalogi]]
[[de:Informatik]]
[[el:Πληροφορική]]
[[es:Informática/Computación]]
[[eo:Komputiko]]
[[fr:Informatique]]
[[fy:Ynformatika]]
[[ko:컴퓨터 과학]]
[[hr:Računarstvo]]
[[id:Ilmu Komputer]]
[[it:Informatica]]
[[ia:Informatica]]
[[hu:Számítástechnika]]
[[ml:കംപ്യുട്ടര്‍ ശാസ്ത്രം]]
[[nl:Informatica]]
[[ja:情報工学]]
[[no:Informatikk]]
[[pl:Informatyka]]
[[pt:Computação]]
[[ro:Informatică]]
[[ru:Информатика]]
[[simple:Computer Science]]
[[sl:Računalništvo]]
[[sr:Рачунарство]]
[[sv:Datavetenskap]]
[[th:วิทยาการคอมพิวเตอร์]]
[[tr:Bilgisayar Mühendisliği]]
[[uk:Інформатика]]
[[zh-cn:计算机科学]]
[[zh-tw:計算機科學]]

Revision as of 22:11, 13 March 2004

In its most general sense, computer science (CS) is the study of computation and information processing, both in hardware and in software. In practice, computer science includes a variety of topics relating to computers, which range from the abstract analysis of algorithms to more concrete subjects like programming languages, software, and computer hardware. As a scientific discipline, it differs significantly from mathematics, programming, software engineering, and computer engineering, although these fields are often confused.

Computer science is no more about computers than astronomy is about telescopes.
- Edsger Dijkstra
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!
- Richard Feynman


The Church-Turing thesis states that all known kinds of general computing devices are essentially equivalent in what they can do, although they vary in time and space efficiency. This thesis is sometimes treated as the fundamental principle of computer science. Most research in computer science has been related to von Neumann computers or Turing machines (computers that do one small, deterministic task at a time), because they resemble most real computers in use today. Computer scientists also study other kinds of machines, some practical (like parallel machines) and some theoretical (like random, oracle and quantum machines).

Computer scientists study what programs can and cannot do (computability and artificial intelligence), how programs should efficiently perform specific tasks (algorithms), how programs should store and retrieve specific kinds of information (data structures), and how programs and people should communicate with each other (user interfaces and programming languages).

Computer science has roots in electrical engineering, mathematics and linguistics. In the last third of the 20th century computer science has become recognized as a distinct discipline and has developed its own methods and terminology.

The first computer science department in the United States was founded at Purdue University in 1962. The University of Cambridge in England, among others, taught CS prior to this, however at the time, CS was seen as a branch of mathematics, and not a separate department. Cambridge claims to have the world's oldest taught qualification in computing. Most universities today have specific departments devoted to computer science.

The highest honor in computer science is the Turing Award.

Related fields

Computer science is closely related to several other fields. These fields overlap considerably, though important differences exist

  • Information science is the study of data and information, including how to interpret, analyze, store, and retrieve it. Information science started as the foundation of scientific analysis of communication and databases.
  • Programming emphasizes writing code, which differs substantially from CS.
  • Software engineering emphasizes analysis, design, and construction of useful software using contemporary tools and practices.
  • Information systems is the application of computing to support the operations of an organization: operating, installing, and maintaining the computers, software, and data. Management information systems is a key subfield that emphasizes financial and personnel management.
  • Mathematics shares many techniques and topics with computer science, but is more general. In some sense, CS is the mathematics of computing.
  • Computer engineering is about the analysis, design, and construction of computer hardware.
  • Information security is about the analysis and implementation of information system security (cryptography is included).

Major fields of importance for computer science

Mathematical foundations

Theoretical computer science

Hardware

(see also electrical engineering)

Computer systems organization

(see also electrical engineering)

Software

Data and information systems

Computing methodologies

Computer applications

Computing milieux

History

Prominent pioneers in computer science

See list of computer scientists for many more notables.

See also

External link