123456789012345678901234567890
Computer science is the scientific
and practical approach to computation
and its applications.  It is the
systematic study of the feasibility,
structure, expression, and mechanization
of the methodical procedures (or
algorithms) that underlie the
acquisition, representation, processing,
storage, communication of, and
access to information.  An alternate,
more succinct definition of computer
science is the study of automating
algorithmic processes that scale.
A computer scientist specializes
in the theory of computation and
the design of computational systems.
Its fields can be divided into
a variety of theoretical and practical
disciplines.  Some fields, such
as computational complexity theory
(which explores the fundamental
properties of computational and
intractable problems), are highly
abstract, while fields such as
computer graphics emphasize real-world
visual applications.  Still other
fields focus on challenges in
implementing computation.  For
example, programming language
theory considers various approaches
to the description of computation,
while the study of computer programming
itself investigates various aspects
of the use of programming language
and complex systems.  Humancomputer
interaction considers the challenges
in making computers and computations
useful, usable, and universally
accessible to humans.  Contents
1 History 1.1 Contributions 2
Philosophy 2.1 Name of the field
3 Areas of computer science 3.1
Theoretical computer science 3.1.1
Theory of computation 3.1.2 Information
and coding theory 3.1.3 Algorithms
and data structures 3.1.4 Programming
language theory 3.1.5 Formal methods
3.2 Applied computer science 3.2.1
Artificial intelligence 3.2.2
Computer architecture and engineering
3.2.3 Computer performance analysis
3.2.4 Computer graphics and visualization
3.2.5 Computer security and cryptography
3.2.6 Computational science 3.2.7
Computer networks 3.2.8 Concurrent,
parallel and distributed systems
3.2.9 Databases 3.2.10 Software
engineering 4 The great insights
of computer science 5 Academia
6 Education 7 See also 8 Notes
9 References 10 Further reading
11 External links History Main
article: History of computer science
Charles Babbage is credited with
inventing the first mechanical
computer.  Ada Lovelace is credited
with writing the first algorithm
intended for processing on a computer.
The earliest foundations of what
would become computer science
predate the invention of the modern
digital computer.  Machines for
calculating fixed numerical tasks
such as the abacus have existed
since antiquity, aiding in computations
such as multiplication and division.
Further, algorithms for performing
computations have existed since
antiquity, even before the development
of sophisticated computing equipment.
The ancient Sanskrit treatise
Shulba Sutras, or "Rules of the
Chord", is a book of algorithms
written in 800 BC for constructing
geometric objects like altars
using a peg and chord, an early
precursor of the modern field
of computational geometry.  Blaise
Pascal designed and constructed
the first working mechanical calculator,
Pascal's calculator, in 1642.
During the 1940s, as new and more
powerful computing machines were
developed, the term computer came
to refer to the machines rather
than their human predecessors.
Since practical computers became
available, many applications of
computing have become distinct
areas of study in their own rights.
Although many initially believed
it was impossible that computers
themselves could actually be a
scientific field of study, in
the late fifties it gradually
became accepted among the greater
academic population.  Time has
seen significant improvements
in the usability and effectiveness
of computing technology.  Modern
society has seen a significant
shift in the users of computer
technology, from usage only by
experts and professionals, to
a near-ubiquitous user base. 
Initially, computers were quite
costly, and some degree of human
aid was needed for efficient usein
part from professional computer
operators.  As computer adoption
became more widespread and affordable,
less human assistance was needed
for common usage.  Contributions
The German military used the Enigma
machine (shown here) during World
War II for communications they
wanted kept secret.  The large-scale
decryption of Enigma traffic at
Bletchley Park was an important
factor that contributed to Allied
victory in WWII.  Despite its
short history as a formal academic
discipline, computer science has
made a number of fundamental contributions
to science and societyin fact,
along with electronics, it is
a founding science of the current
epoch of human history called
the Information Age and a driver
of the Information Revolution,
seen as the third major leap in
human technological progress after
the Industrial Revolution (17501850
CE) and the Agricultural Revolution
(80005000 BC).  These contributions
include: The start of the "digital
revolution", which includes the
current Information Age and the
Internet.  A formal definition
of computation and computability,
and proof that there are computationally
unsolvable and intractable problems.
The concept of a programming language,
a tool for the precise expression
of methodological information
at various levels of abstraction.
In cryptography, breaking the
Enigma code was an important factor
contributing to the Allied victory
in World War II.  Scientific computing
enabled practical evaluation of
processes and situations of great
complexity, as well as experimentation
entirely by software.  It also
enabled advanced study of the
mind, and mapping of the human
genome became possible with the
Human Genome Project.  Distributed
computing projects such as Folding@home
explore protein folding.  Algorithmic
trading has increased the efficiency
and liquidity of financial markets
by using artificial intelligence,
machine learning, and other statistical
and numerical techniques on a
large scale.  Computer graphics
and computer-generated imagery
have become ubiquitous in modern
entertainment, particularly in
television, cinema, advertising,
animation and video games.  Even
films that feature no explicit
CGI are usually "filmed" now on
digital cameras, or edited or
post-processed using a digital
video editor.  Simulation of various
processes, including computational
fluid dynamics, physical, electrical,
and electronic systems and circuits,
as well as societies and social
situations (notably war games)
along with their habitats, among
many others.  Modern computers
enable optimization of such designs
as complete aircraft.  Notable
in electrical and electronic circuit
design are SPICE, as well as software
for physical realization of new
(or modified) designs.  The latter
includes essential design software
for integrated circuits.  Artificial
intelligence is becoming increasingly
important as it gets more efficient
and complex.  There are many applications
of AI, some of which can be seen
at home, such as robotic vacuum
cleaners.  It is also present
in video games and on the modern
battlefield in drones, anti-missile
systems, and squad support robots.
Philosophy Main article: Philosophy
of computer science A number of
computer scientists have argued
for the distinction of three separate
paradigms in computer science.
Peter Wegner argued that those
paradigms are science, technology,
and mathematics.  Name of the
field Although first proposed
in 1956, to reflect the fact that
the scientific discipline revolves
around data and data treatment,
while not necessarily involving
computers.  The first scientific
institution to use the term was
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
Scandinavian countries.  An alternative
term, also proposed by Naur, is
data science; this is now used
for a distinct field of data analysis,
including statistics and databases.
Also, 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 ACMturingineer, turologist,
flow-charts-man, applied meta-mathematician,
and applied epistemologist.  A
folkloric quotation, often attributed
tobut almost certainly not first
formulated byEdsger Dijkstra,
states that "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 also often intersects
other disciplines, such as philosophy,
cognitive science, linguistics,
mathematics, physics, biology,
statistics, and logic.  Computer
science is considered by some
to have a much closer relationship
with mathematics than many scientific
disciplines, with some observers
saying that computing is a mathematical
science.  The relationship between
computer science and software
engineering is a contentious issue,
which is further muddied by disputes
over what the term "software engineering"
means, and how computer science
is defined.  The academic, political,
and funding aspects of computer
science tend to depend on whether
a department formed with a mathematical
emphasis or with an engineering
emphasis.  Computer science departments
with a mathematics emphasis and
with a numerical orientation consider
alignment with computational science.
Both types of departments tend
to make efforts to bridge the
field educationally if not across
all research.  Areas of computer
science Further information: Outline
of computer science As a discipline,
computer science spans a range
of topics from theoretical studies
of algorithms and the limits of
computation to the practical issues
of implementing computing systems
in hardware and software.  Theoretical
computer science Main article:
Theoretical computer science The
broader field of theoretical computer
science encompasses both the classical
theory of computation and a wide
range of other topics that focus
on the more abstract, logical,
and mathematical aspects of computing.
