0% found this document useful (0 votes)
56 views147 pages

Overview of Computer Science Fields

Computer science is the study of computation, automation, and information, encompassing both theoretical and practical disciplines. It includes areas such as algorithms, artificial intelligence, and software engineering, and has evolved into a distinct academic field since its inception in the 1950s. The discipline is characterized by its focus on what can be automated and the relationships it shares with mathematics and engineering.

Uploaded by

MOSES GILBERT MD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views147 pages

Overview of Computer Science Fields

Computer science is the study of computation, automation, and information, encompassing both theoretical and practical disciplines. It includes areas such as algorithms, artificial intelligence, and software engineering, and has evolved into a distinct academic field since its inception in the 1950s. The discipline is characterized by its focus on what can be automated and the relationships it shares with mathematics and engineering.

Uploaded by

MOSES GILBERT MD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Computer science

Computer science is the study of


computation, automation, and
information.[1][2][3] Computer
science spans theoretical
disciplines (such as algorithms,
theory of computation, information
theory, and automation) to practical
disciplines (including the design and
implementation of hardware and
software).[4][5][6] Computer science
is generally considered an academic
discipline and distinct from
computer programming which is
considered to be a technical field.[7]

Fundamental areas of computer


science

Programming language theory Computational


complexity theory

Artificial intelligence Computer architecture

Algorithms and data structures are


central to computer science.[8] The
theory of computation concerns
abstract models of computation
and general classes of problems
that can be solved using them. The
fields of cryptography and computer
security involve studying the means
for secure communication and for
preventing security vulnerabilities.
Computer graphics and
computational geometry address
the generation of images.
Programming language theory
considers different ways to describe
computational processes, and
database theory concerns the
management of repositories of
data. Human–computer interaction
investigates the interfaces through
which humans and computers
interact, and software engineering
focuses on the design and
principles behind developing
software. Areas such as operating
systems, networks and embedded
systems investigate the principles
and design behind complex
systems. Computer architecture
describes the construction of
computer components and
computer-operated equipment.
Artificial intelligence and machine
learning aim to synthesize goal-
orientated processes such as
problem-solving, decision-making,
environmental adaptation, planning
and learning found in humans and
animals. Within artificial
intelligence, computer vision aims
to understand and process image
and video data, while natural
language processing aims to
understand and process textual and
linguistic data.

The fundamental concern of


computer science is determining
what can and cannot be
automated.[2][9][3][10][11] The Turing
Award is generally recognized as
the highest distinction in computer
science.[12][13]

History

Gottfried Wilhelm Leibniz (1646–1716) developed logic in a binary number system and has been called
the "founder of computer science".[14]
Charles Babbage is sometimes referred to as the "father of computing".[15]

Ada Lovelace published the first algorithm intended for processing on a computer.[16]

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. Algorithms for
performing computations have
existed since antiquity, even before
the development of sophisticated
computing equipment.[17]

Wilhelm Schickard designed and


constructed the first working
mechanical calculator in 1623.[18] In
1673, Gottfried Leibniz
demonstrated a digital mechanical
calculator, called the Stepped
Reckoner.[19] Leibniz may be
considered the first computer
scientist and information theorist,
because of various reasons,
including the fact that he
documented the binary number
system. In 1820, Thomas de Colmar
launched the mechanical calculator
industry[note 1] when he invented his
simplified arithmometer, the first
calculating machine strong enough
and reliable enough to be used daily
in an office environment. Charles
Babbage started the design of the
first automatic mechanical
calculator, his Difference Engine, in
1822, which eventually gave him the
idea of the first programmable
mechanical calculator, his Analytical
Engine.[20] He started developing
this machine in 1834, and "in less
than two years, he had sketched out
many of the salient features of the
modern computer".[21] "A crucial
step was the adoption of a punched
card system derived from the
Jacquard loom"[21] making it
infinitely programmable.[note 2] In
1843, during the translation of a
French article on the Analytical
Engine, Ada Lovelace wrote, in one
of the many notes she included, an
algorithm to compute the Bernoulli
numbers, which is considered to be
the first published algorithm ever
specifically tailored for
implementation on a computer.[22]
Around 1885, Herman Hollerith
invented the tabulator, which used
punched cards to process statistical
information; eventually his company
became part of IBM. Following
Babbage, although unaware of his
earlier work, Percy Ludgate in 1909
published[23] the 2nd of the only two
designs for mechanical analytical
engines in history. In 1937, one
hundred years after Babbage's
impossible dream, Howard Aiken
convinced IBM, which was making
all kinds of punched card equipment
and was also in the calculator
business[24] to develop his giant
programmable calculator, the
ASCC/Harvard Mark I, based on
Babbage's Analytical Engine, which
itself used cards and a central
computing unit. When the machine
was finished, some hailed it as
"Babbage's dream come true".[25]

During the 1940s, with the


development of new and more
powerful computing machines such
as the Atanasoff–Berry computer
and ENIAC, the term computer came
to refer to the machines rather than
their human predecessors.[26] 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. In
1945, IBM founded the Watson
Scientific Computing Laboratory at
Columbia University in New York
City. The renovated fraternity house
on Manhattan's West Side was
IBM's first laboratory devoted to
pure science. The lab is the
forerunner of IBM's Research
Division, which today operates
research facilities around the
world.[27] Ultimately, the close
relationship between IBM and
Columbia University was
instrumental in the emergence of a
new scientific discipline, with
Columbia offering one of the first
academic-credit courses in
computer science in 1946.[28]
Computer science began to be
established as a distinct academic
discipline in the 1950s and early
1960s.[29][30] The world's first
computer science degree program,
the Cambridge Diploma in
Computer Science, began at the
University of Cambridge Computer
Laboratory in 1953. The first
computer science department in the
United States was formed at Purdue
University in 1962.[31] Since practical
computers became available, many
applications of computing have
become distinct areas of study in
their own rights.

Etymology
Although first proposed in 1956,[32]
the term "computer science"
appears in a 1959 article in
Communications of the ACM,[33] in
which Louis Fein argues for the
creation of a Graduate School in
Computer Sciences analogous to the
creation of Harvard Business School
in 1921.[34] Louis justifies the name
by arguing that, like management
science, the subject is applied and
interdisciplinary in nature, while
having the characteristics typical of
an academic discipline.[33] His
efforts, and those of others such as
numerical analyst George Forsythe,
were rewarded: universities went on
to create such departments, starting
with Purdue in 1962.[35] Despite its
name, a significant amount of
computer science does not involve
the study of computers themselves.
Because of this, several alternative
names have been proposed.[36]
Certain departments of major
universities prefer the term
computing science, to emphasize
precisely that difference. Danish
scientist Peter Naur suggested the
term datalogy,[37] 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 multi-
disciplinary field of data analysis,
including statistics and databases.

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—
turingineer, turologist, flow-charts-
man, applied meta-mathematician,
and applied epistemologist.[38] Three
months later in the same journal,
comptologist was suggested,
followed next year by hypologist.[39]
The term computics has also been
suggested.[40] In Europe, terms
derived from contracted translations
of the expression "automatic
information" (e.g. "informazione
automatica" in Italian) or
"information and mathematics" are
often used, e.g. informatique
(French), Informatik (German),
informatica (Italian, Dutch),
informática (Spanish, Portuguese),
informatika (Slavic languages and
Hungarian) or pliroforiki
(πληροφορική, which means
informatics) in Greek. Similar words
have also been adopted in the UK
(as in the School of Informatics,
University of Edinburgh).[41] "In the
U.S., however, informatics is linked
with applied computing, or
computing in the context of another
domain."[42]

A folkloric quotation, often


attributed to—but almost certainly
not first formulated by—Edsger
Dijkstra, states that "computer
science is no more about
computers than astronomy is about
telescopes."[note 3] 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 exchange of ideas
between the various computer-
related disciplines. Computer
science research also often
intersects other disciplines, such as
cognitive science, linguistics,
mathematics, physics, biology, Earth
science, statistics, philosophy, 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.[29] Early computer science
was strongly influenced by the work
of mathematicians such as Kurt
Gödel, Alan Turing, John von
Neumann, Rózsa Péter and Alonzo
Church 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.[32]

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.[43] David Parnas, taking a
cue from the relationship between
other engineering and science
disciplines, has claimed that the
principal focus of computer science
is studying the properties of
computation in general, while the
principal focus of software
engineering is the design of specific
computations to achieve practical
goals, making the two separate but
complementary disciplines.[44]

The academic, political, and funding


aspects of computer science tend
to depend on whether a department
is 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.

Philosophy

Epistemology of computer
science

Despite the word "science" in its


name, there is debate over whether
or not computer science is a
discipline of science,[45]
mathematics,[46] or engineering.[47]
Allen Newell and Herbert A. Simon
argued in 1975,

Computer science is an
empirical discipline. We would
have called it an experimental
science, but like astronomy,
economics, and geology, some
of its unique forms of
observation and experience do
not fit a narrow stereotype of
the experimental method.
Nonetheless, they are
experiments. Each new
machine that is built is an
experiment. Actually
constructing the machine poses
a question to nature; and we
listen for the answer by
observing the machine in
operation and analyzing it by
all analytical and measurement
means available.[47]

It has since been argued that


computer science can be classified
as an empirical science since it
makes use of empirical testing to
evaluate the correctness of
programs, but a problem remains in
defining the laws and theorems of
computer science (if any exist) and
defining the nature of experiments
in computer science.[47] Proponents
of classifying computer science as
an engineering discipline argue that
the reliability of computational
systems is investigated in the same
way as bridges in civil engineering
and airplanes in aerospace
engineering.[47] They also argue that
while empirical sciences observe
what presently exists, computer
science observes what is possible
to exist and while scientists
discover laws from observation, no
proper laws have been found in
computer science and it is instead
concerned with creating
phenomena.[47]

Proponents of classifying computer


science as a mathematical
discipline argue that computer
programs are physical realizations
of mathematical entities and
programs can be deductively
reasoned through mathematical
formal methods.[47] Computer
scientists Edsger W. Dijkstra and
Tony Hoare regard instructions for
computer programs as
mathematical sentences and
interpret formal semantics for
programming languages as
mathematical axiomatic systems.[47]

Paradigms 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.[48] Peter Denning's
working group argued that they are
theory, abstraction (modeling), and
design.[49] Amnon H. Eden
described them as the "rationalist
paradigm" (which treats computer
science as a branch of
mathematics, which is prevalent in
theoretical computer science, and
mainly employs deductive
reasoning), the "technocratic
paradigm" (which might be found in
engineering approaches, most
prominently in software
engineering), and the "scientific
paradigm" (which approaches
computer-related artifacts from the
empirical perspective of natural
sciences,[50] identifiable in some
branches of artificial
intelligence).[51] Computer science
focuses on methods involved in
design, specification, programming,
verification, implementation and
testing of human-made computing
systems.[52]

Fields
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.[53][54]CSAB, formerly
called Computing Sciences
Accreditation Board—which is made
up of representatives of the
Association for Computing
Machinery (ACM), and the IEEE
Computer Society (IEEE CS)[55]—
identifies four areas that it
considers crucial to the discipline of
computer science: theory of
computation, algorithms and data
structures, programming
methodology and languages, and
computer elements and architecture.
In addition to these four areas,
CSAB also identifies fields such as
software engineering, artificial
intelligence, computer networking
and communication, database
systems, parallel computation,
distributed computation, human–
computer interaction, computer
graphics, operating systems, and
numerical and symbolic
computation as being important
areas of computer science.[53]

Computer science is no more


about computers than
astronomy is about telescopes.
— Edsger Dijkstra

Theoretical computer science

Theoretical Computer Science is


mathematical and abstract in spirit,
but it derives its motivation from the
practical and everyday computation.
Its aim is to understand the nature
of computation and, as a
consequence of this understanding,
provide more efficient
methodologies.
Theory of computation

According to Peter Denning, the


fundamental question underlying
computer science is, "What can be
automated?"[29] Theory of
computation is focused on
answering fundamental questions
about what can be computed and
what amount of resources are
required to perform those
computations. In an effort to
answer the first question,
computability theory examines
which computational problems are
solvable on various theoretical
models of computation. The second
question is addressed by
computational complexity theory,
which studies the time and space
costs associated with different
approaches to solving a multitude
of computational problems.

The famous P = NP? problem, one


of the Millennium Prize Problems,[56]
is an open problem in the theory of
computation.
Com
Automata Formal Computability
com
theory languages theory
t

Quantum
Models of Logic circuit C
computing
computation theory au
theory

Information and coding theory

Information theory, closely related


to probability and statistics, is
related to the quantification of
information. This was developed by
Claude Shannon to find
fundamental limits on signal
processing operations such as
compressing data and on reliably
storing and communicating data.[57]
Coding theory is the study of the
properties of codes (systems for
converting information from one
form to another) and their fitness
for a specific application. Codes are
used for data compression,
cryptography, error detection and
correction, and more recently also
for network coding. Codes are
studied for the purpose of designing
efficient and reliable data
transmission methods. [58]
Algorithmic Signal
Coding Channel Kolmo
information detection
theory capacity comp
theory theory

Data structures and algorithms

Data structures and algorithms are


the studies of commonly used
computational methods and their
computational efficiency.

O(n2)

Analysis
Algorithm Data Combinator
of
design structures optimizatio
algorithms
Programming language theory and
formal methods

Programming language theory is a


branch of computer science that
deals with the design,
implementation, analysis,
characterization, and classification
of programming languages and their
individual features. It falls within the
discipline of computer science, both
depending on and affecting
mathematics, software engineering,
and linguistics. It is an active
research area, with numerous
dedicated academic journals.
Formal methods are a particular
kind of mathematically based
technique for the specification,
development and verification of
software and hardware systems.[59]
The use of formal methods for
software and hardware design is
motivated by the expectation that,
as in other engineering disciplines,
performing appropriate
mathematical analysis can
contribute to the reliability and
robustness of a design. They form
an important theoretical
underpinning for software
engineering, especially where safety
or security is involved. Formal
methods are a useful adjunct to
software testing since they help
avoid errors and can also give a
framework for testing. For industrial
use, tool support is required.
However, the high cost of using
formal methods means that they are
usually only used in the
development of high-integrity and
life-critical systems, where safety or
security is of utmost importance.
Formal methods are best described
as the application of a fairly broad
variety of theoretical computer
science fundamentals, in particular
logic calculi, formal languages,
automata theory, and program
semantics, but also type systems
and algebraic data types to
problems in software and hardware
specification and verification.

Formal Type Compiler Programming F


semantics theory design languages ver
Applied computer science

Computer graphics and


visualization

Computer graphics is the study of


digital visual contents and involves
the synthesis and manipulation of
image data. The study is connected
to many other fields in computer
science, including computer vision,
image processing, and
computational geometry, and is
heavily applied in the fields of
special effects and video games.
2D
Computer Mixed Virtual
computer Rendering
animation reality reality
graphics

Image and sound processing

Information can take the form of


images, sound, video or other
multimedia. Bits of information can
be streamed via signals. Its
processing is the central notion of
informatics, the European view on
computing, which studies
information processing algorithms
independently of the type of
information carrier - whether it is
electrical, mechanical or biological.
This field plays important role in
information theory,
telecommunications, information
engineering and has applications in
medical image computing and
speech synthesis, among others.
What is the lower bound on the
complexity of fast Fourier transform
algorithms? is one of unsolved
problems in theoretical computer
science.
FFT Image Speech Data
algorithms processing recognition compress

Computational science, finance and


engineering

Scientific computing (or


computational science) is the field
of study concerned with
constructing mathematical models
and quantitative analysis techniques
and using computers to analyze and
solve scientific problems. A major
usage of scientific computing is
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,[60] as well as
software for physical realization of
new (or modified) designs. The
latter includes essential design
software for integrated circuits.[61]
Numerical Computational Computational
Bio
analysis physics chemistry

Social computing and human–


computer interaction

Social computing is an area that is


concerned with the intersection of
social behavior and computational
systems. Human–computer
interaction research develops
theories, principles, and guidelines
for user interface designers.
Software engineering

Software engineering is the study of


designing, implementing, and
modifying the software in order to
ensure it is of high quality,
affordable, maintainable, and fast to
build. It is a systematic approach to
software design, involving the
application of engineering practices
to software. Software engineering
deals with the organizing and
analyzing of software—it doesn't
just deal with the creation or
manufacture of new software, but
its internal arrangement and
maintenance. For example software
testing, systems engineering,
technical debt and software
development processes.

Artificial intelligence

Artificial intelligence (AI) aims to or


is required to synthesize goal-
orientated processes such as
problem-solving, decision-making,
environmental adaptation, learning,
and communication found in
humans and animals. From its
origins in cybernetics and in the
Dartmouth Conference (1956),
artificial intelligence research has
been necessarily cross-disciplinary,
drawing on areas of expertise such
as applied mathematics, symbolic
logic, semiotics, electrical
engineering, philosophy of mind,
neurophysiology, and social
intelligence. AI is associated in the
popular mind with robotic
development, but the main field of
practical application has been as an
embedded component in areas of
software development, which
require computational
understanding. The starting point in
the late 1940s was Alan Turing's
question "Can computers think?",
and the question remains effectively
unanswered, although the Turing
test is still used to assess computer
output on the scale of human
intelligence. But the automation of
evaluative and predictive tasks has
been increasingly successful as a
substitute for human monitoring
and intervention in domains of
computer application involving
complex real-world data.
Computational Computer Neural
learning theory vision networks

Natural
Computational Evolutionary
language
game theory computation
processing

Representation Pattern
Robotics
and reasoning recognition
Computer systems

Computer architecture and


organization

Computer architecture, or digital


computer organization, is the
conceptual design and fundamental
operational structure of a computer
system. It focuses largely on the
way by which the central processing
unit performs internally and
accesses addresses in memory.[62]
Computer engineers study
computational logic and design of
computer hardware, from individual
processor components,
microcontrollers, personal
computers to supercomputers and
embedded systems. The term
"architecture" in computer literature
can be traced to the work of Lyle R.
Johnson and Frederick P. Brooks,
Jr., members of the Machine
Organization department in IBM's
main research center in 1959.
Processing
MicroarchitectureMultiprocessi
unit

Ubiquitous Systems Operating


computing architecture systems

Embedded Real-time
Dependabilit
system computing

Concurrent, parallel and distributed


computing

Concurrency is a property of
systems in which several
computations are executing
simultaneously, and potentially
interacting with each other.[63] A
number of mathematical models
have been developed for general
concurrent computation including
Petri nets, process calculi and the
Parallel Random Access Machine
model.[64] When multiple computers
are connected in a network while
using concurrency, this is known as
a distributed system. Computers
within that distributed system have
their own private memory, and
information can be exchanged to
achieve common goals.[65]
Computer networks

This branch of computer science


aims to manage networks between
computers worldwide.

Computer security and


cryptography

Computer security is a branch of


computer technology with the
objective of protecting information
from unauthorized access,
disruption, or modification while
maintaining the accessibility and
usability of the system for its
intended users.
Historical cryptography is the art of
writing and deciphering secret
messages. Modern cryptography is
the scientific study of problems
relating to distributed computations
that can be attacked.[66]
Technologies studied in modern
cryptography include symmetric and
asymmetric encryption, digital
signatures, cryptographic hash
functions, key-agreement protocols,
blockchain, zero-knowledge proofs,
and garbled circuits.
Databases and data mining

A database is intended to organize,


store, and retrieve large amounts of
data easily. Digital databases are
managed using database
management systems to store,
create, maintain, and search data,
through database models and query
languages. Data mining is a process
of discovering patterns in large data
sets.

Discoveries
The philosopher of computing Bill
Rapaport noted three Great Insights
of Computer Science:[67]

Gottfried Wilhelm Leibniz's, George


Boole's, Alan Turing's, Claude
Shannon's, and Samuel Morse's
insight: there are only two objects
that a computer has to deal with in
order to represent "anything".[note 4]
All the information about any
computable problem can be
represented using only 0 and 1 (or
any other bistable pair that can flip-
flop between two easily
distinguishable states, such as
"on/off", "magnetized/de-
magnetized", "high-voltage/low-
voltage", etc.).
Alan Turing's insight: there are only
five actions that a computer has to
perform in order to do "anything".
Every algorithm can be expressed in
a language for a computer
consisting of only five basic
instructions:[68]
move left one location;
move right one location;
read symbol at current location;
print 0 at current location;
print 1 at current location.
Corrado Böhm and Giuseppe
Jacopini's insight: there are only
three ways of combining these
actions (into more complex ones)
that are needed in order for a
computer to do "anything".[69]
Only three rules are needed to
combine any set of basic
instructions into more complex
ones:
sequence: first do this, then do that;
selection: IF such-and-such is the
case, THEN do this, ELSE do that;
repetition: WHILE such-and-such is
the case, DO this.
Note that the three rules of Boehm's
and Jacopini's insight can be further
simplified with the use of goto
(which means it is more elementary
than structured programming).

Programming paradigms
Programming languages can be
used to accomplish different tasks
in different ways. Common
programming paradigms include:

Functional programming, a style of


building the structure and elements
of computer programs that treats
computation as the evaluation of
mathematical functions and avoids
state and mutable data. It is a
declarative programming paradigm,
which means programming is done
with expressions or declarations
instead of statements.[70]
Imperative programming, a
programming paradigm that uses
statements that change a program's
state.[71] In much the same way that
the imperative mood in natural
languages expresses commands,
an imperative program consists of
commands for the computer to
perform. Imperative programming
focuses on describing how a
program operates.
Object-oriented programming, a
programming paradigm based on
the concept of "objects", which may
contain data, in the form of fields,
often known as attributes; and code,
in the form of procedures, often
known as methods. A feature of
objects is that an object's
procedures can access and often
modify the data fields of the object
with which they are associated.
Thus object-oriented computer
programs are made out of objects
that interact with one another.[72]
Service-oriented programming, a
programming paradigm that uses
"services" as the unit of computer
work, to design and implement
integrated business applications
and mission critical software
programs

Many languages offer support for


multiple paradigms, making the
distinction more a matter of style
than of technical capabilities.[73]
Research
Conferences are important events
for computer science research.
During these conferences,
researchers from the public and
private sectors present their recent
work and meet. Unlike in most other
academic fields, in computer
science, the prestige of conference
papers is greater than that of journal
publications.[74][75] One proposed
explanation for this is the quick
development of this relatively new
field requires rapid review and
distribution of results, a task better
handled by conferences than by
journals.[76]

Education
Computer Science, known by its
near synonyms, Computing,
Computer Studies, has been taught
in UK schools since the days of
batch processing, mark sensitive
cards and paper tape but usually to
a select few students.[77] In 1981,
the BBC produced a micro-computer
and classroom network and
Computer Studies became common
for GCE O level students (11–16-
year-old), and Computer Science to
A level students. Its importance was
recognised, and it became a
compulsory part of the National
Curriculum, for Key Stage 3 & 4. In
September 2014 it became an
entitlement for all pupils over the
age of 4.[78]

In the US, with 14,000 school


districts deciding the curriculum,
provision was fractured.[79]
According to a 2010 report by the
Association for Computing
Machinery (ACM) and Computer
Science Teachers Association
(CSTA), only 14 out of 50 states
have adopted significant education
standards for high school computer
science.[80] According to a 2021
report, only 51% of high schools in
the US offer computer science.[81]

Israel, New Zealand, and South


Korea have included computer
science in their national secondary
education curricula,[82][83] and
several others are following.[84]

See also
Computer engineering
Computer programming
Digital Revolution
Information and communications
technology
Information technology
List of computer scientists
List of computer science awards
List of important publications in
computer science
List of pioneers in computer science
List of unsolved problems in
computer science
Programming language
Software engineering
Notes
1. In 1851
2. "The introduction of punched cards into
the new engine was important not only as
a more convenient form of control than
the drums, or because programs could
now be of unlimited extent, and could be
stored and repeated without the danger
of introducing errors in setting the
machine by hand; it was important also
because it served to crystallize Babbage's
feeling that he had invented something
really new, something much more than a
sophisticated calculating machine." Bruce
Collier, 1970
3. See the entry "Computer science" on
Wikiquote for the history of this
quotation.
4. The word "anything" is written in
quotation marks because there are things
that computers cannot do. One example
is: to answer the question if an arbitrary
given computer program will eventually
finish or run forever (the Halting
problem).

References
1. "What is Computer Science? - Computer
Science. The University of York" (https://
[Link]/undergraduate/what-i
s-cs/) . [Link]. Archived (htt
ps://[Link]/web/202006112306
38/[Link]
uate/what-is-cs/) from the original on
June 11, 2020. Retrieved June 11, 2020.
2. The MIT Press (April 30, 1980). What Can
Be Automated? Computer Science and
Engineering Research Study | The MIT
Press ([Link]
hat-can-be-automated) .
[Link]. Computer Science
Series. MIT Press. ISBN 9780262010603.
Archived ([Link]
0210109021022/[Link]
u/books/what-can-be-automated) from
the original on January 9, 2021.
3. Denning, P.J.; Comer, D.E.; Gries, D.;
Mulder, M.C.; Tucker, A.; Turner, A.J.;
Young, P.R. (February 1989). "Computing
as a discipline" ([Link]
g/document/19833) . Computer. 22 (2):
63–70. doi:10.1109/2.19833 ([Link]
org/10.1109%2F2.19833) . ISSN 1558-
0814 ([Link]
8-0814) . Archived ([Link]
rg/web/20220303023329/[Link]
[Link]/document/19833) from the
original on March 3, 2022. Retrieved
March 3, 2022. "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?' "
4. "WordNet Search—3.1" ([Link]
[Link]/perl/webwn?s=compute
r%20scientist) . WordNet Search.
[Link]. Archived (htt
ps://[Link]/web/201710181811
22/[Link]
l/webwn?s=computer%20scientist) from
the original on October 18, 2017.
Retrieved May 14, 2012.
5. "Definition of computer science |
[Link]" ([Link]
om/browse/computer-science) .
[Link]. Archived ([Link]
[Link]/web/20200611224238/htt
ps://[Link]/browse/compu
ter-science) from the original on June
11, 2020. Retrieved June 11, 2020.
6. "What is Computer Science? |
Undergraduate Computer Science at
UMD" ([Link]
at-computer-science) .
[Link]. Archived (https://
[Link]/web/20201127013803/
[Link]
puter-science) from the original on
November 27, 2020. Retrieved July 15,
2022.
7. Denning, P.J.; Comer, D.E.; Gries, D.;
Mulder, M.C.; Tucker, A.; Turner, A.J.;
Young, P.R. (February 1989). "Computing
as a discipline" ([Link]
g/document/19833) . Computer. 22 (2):
63–70. doi:10.1109/2.19833 ([Link]
org/10.1109%2F2.19833) . ISSN 1558-
0814 ([Link]
8-0814) . Archived ([Link]
rg/web/20220303023329/[Link]
[Link]/document/19833) from the
original on March 3, 2022. Retrieved
March 3, 2022. "Those in the discipline
know that computer science
encompasses far more than
programming."
8. Harel, David (2014). Algorithmics The
Spirit of Computing ([Link]
clc/876384882) . Springer Berlin.
ISBN 978-3-642-44135-6.
OCLC 876384882 ([Link]
org/oclc/876384882) . Archived (https://
[Link]/web/20200617145021/
[Link]
2) from the original on June 17, 2020.
Retrieved June 17, 2020.
9. Patton, Richard D.; Patton, Peter C.
(2009), Nof, Shimon Y. (ed.), "What Can
Be Automated? What Cannot Be
Automated?" ([Link]
8-3-540-78831-7_18) , Springer
Handbook of Automation, Springer
Handbooks, Berlin, Heidelberg: Springer,
pp. 305–313, doi:10.1007/978-3-540-
78831-7_18 ([Link]
978-3-540-78831-7_18) , ISBN 978-3-540-
78831-7, archived ([Link]
g/web/20230111224039/[Link]
[Link]/chapter/10.1007/978-3-540-78
831-7_18) from the original on January
11, 2023, retrieved March 3, 2022
10. Forsythe, George (August 5–10, 1969).
"Computer Science and Education".
Proceedings of IFIP Congress 1968. "The
question 'What can be automated?' is one
of the most inspiring philosophical and
practical questions of contemporary
civilization."
11. Knuth, Donald E. (August 1, 1972).
"George Forsythe and the development of
computer science" ([Link]
45/361532.361538) . Communications
of the ACM. 15 (8): 721–726.
doi:10.1145/361532.361538 ([Link]
org/10.1145%2F361532.361538) .
ISSN 0001-0782 ([Link]
rg/issn/0001-0782) . S2CID 12512057 (h
ttps://[Link]/CorpusID:
12512057) .
12. Hanson, Vicki L. (January 23, 2017).
"Celebrating 50 years of the Turing
award" ([Link]
0.1145/3033604) . Communications of
the ACM. 60 (2): 5. doi:10.1145/3033604
([Link] .
ISSN 0001-0782 ([Link]
rg/issn/0001-0782) . S2CID 29984960 (h
ttps://[Link]/CorpusID:
29984960) . Archived ([Link]
[Link]/web/20220303023329/[Link]
[Link]/doi/fullHtml/10.1145/3033604)
from the original on March 3, 2022.
Retrieved March 3, 2022.
13. Scott, Eric; Martins, Marcella Scoczynski
Ribeiro; Yafrani, Mohamed El; Volz,
Vanessa; Wilson, Dennis G (June 5,
2018). "ACM marks 50 years of the ACM
A.M. turing award and computing's
greatest achievements" ([Link]
0.1145/3231560.3231563) . ACM
SIGEVOlution. 10 (3): 9–11.
doi:10.1145/3231560.3231563 ([Link]
[Link]/10.1145%2F3231560.3231563) .
S2CID 47021559 ([Link]
[Link]/CorpusID:47021559) .
14. "2021: 375th birthday of Leibniz, father of
computer science" ([Link]
h/~juergen/leibniz-father-computer-scien
[Link]) . [Link].
15. "Charles Babbage Institute: Who Was
Charles Babbage?" ([Link]
du/about/[Link]) . [Link].
Archived ([Link]
0070109093346/[Link]
u/about/[Link]) from the original
on January 9, 2007. Retrieved
December 28, 2016.
16. "Ada Lovelace | Babbage Engine |
Computer History Museum" ([Link]
[Link]/babbage/adalovelac
e/) . [Link]. Archived
([Link]
24329/[Link]
abbage/adalovelace/%20) from the
original on December 25, 2018. Retrieved
December 28, 2016.
17. "History of Computer Science" ([Link]
[Link]/~shallit/Courses/134/his
[Link]#:~:text=In%20the%201960%27
s,%20computer%20science,person%20t
o%20receive%20a%20Ph.) .
[Link]. Archived ([Link]
[Link]/web/20170729210116/https://
[Link]/~shallit/Courses/134/hi
[Link]#:~:text=In%20the%201960%27
s,%20computer%20science,person%20t
o%20receive%20a%20Ph.) from the
original on July 29, 2017. Retrieved
July 15, 2022.
18. "Wilhelm Schickard – Ein
Computerpionier" ([Link]
g/web/20200919014352/[Link]
[Link]/fmimedia/Fakultaet/Institut
e+und+Abteilungen/Abteilung+f%C3%BCr
+Didaktik/GDI/Wilhelm+[Link])
(PDF) (in German). Archived from the
original ([Link]
edia/Fakultaet/Institute+und+Abteilunge
n/Abteilung+f%C3%BCr+Didaktik/GDI/Wil
helm+[Link]) (PDF) on
September 19, 2020. Retrieved
December 4, 2016.
19. Keates, Fiona (June 25, 2012). "A Brief
History of Computing" ([Link]
[Link]/web/20120629072020/[Link]
[Link]/history-of-science/201
2/06/25/history-of-computing/) . The
Repository. The Royal Society. Archived
from the original ([Link]
[Link]/history-of-science/2012/06/25/hist
ory-of-computing/) on June 29, 2012.
Retrieved January 19, 2014.
20. "Science Museum, Babbage's Analytical
Engine, 1834-1871 (Trial model)" (https://
[Link]/o
bjects/co62245/babbages-analytical-engi
ne-1834-1871-trial-model-analytical-engin
es) . Archived ([Link]
eb/20190830123359/[Link]
[Link]/objects/co6
2245/babbages-analytical-engine-1834-1
871-trial-model-analytical-engines) from
the original on August 30, 2019. Retrieved
May 11, 2020.
21. Anthony Hyman (1982). Charles
Babbage, pioneer of the computer (http
s://[Link]/details/charlesbabbagepi
0000hyma) . ISBN 9780691083032.
22. "A Selection and Adaptation From Ada's
Notes found in Ada, The Enchantress of
Numbers," by Betty Alexandra Toole Ed.D.
Strawberry Press, Mill Valley, CA" (https://
[Link]/web/20060210172109/
[Link]
[Link]) . Archived from the original
([Link]
n/[Link]) on February 10, 2006.
Retrieved May 4, 2006.
23. "The John Gabriel Byrne Computer
Science Collection" ([Link]
rg/web/20190416071721/[Link]
[Link]/SCSSTreasuresCatalog/miscel
lany/TCD-SCSS-X.20121208.002/TCD-SC
[Link]) (PDF). Archived
from the original ([Link]
STreasuresCatalog/miscellany/TCD-SCS
S-X.20121208.002/TCD-SCSS-X.2012120
[Link]/) on April 16, 2019. Retrieved
August 8, 2019.
24. "In this sense Aiken needed IBM, whose
technology included the use of punched
cards, the accumulation of numerical
data, and the transfer of numerical data
from one register to another", Bernard
Cohen, p.44 (2000)
25. Brian Randell, p. 187, 1975
26. The Association for Computing
Machinery (ACM) was founded in 1947.
27. "IBM Archives: 1945" ([Link]
om/ibm/history/history/year_1945.htm
l) . [Link]. January 23, 2003. Archived
([Link]
13948/[Link]
y/history/year_1945.html) from the
original on January 5, 2019. Retrieved
March 19, 2019.
28. "IBM100 – The Origins of Computer
Science" ([Link]
ory/ibm100/us/en/icons/compsci/) .
[Link]. September 15, 1995. Archived
([Link]
51800/[Link]
y/ibm100/us/en/icons/compsci/) from
the original on January 5, 2019. Retrieved
March 19, 2019.
29. Denning, Peter J. (2000). "Computer
Science: The Discipline" ([Link]
[Link]/web/20060525195404/[Link]
[Link]/emner/dif8916/[Link]
f) (PDF). Encyclopedia of Computer
Science. Archived from the original (htt
p://[Link]/emner/dif8916/denn
[Link]) (PDF) on May 25, 2006.
30. "Some EDSAC statistics" ([Link]
[Link]/conference/EDSAC99/statistic
[Link]) . University of Cambridge.
Archived ([Link]
0070903055322/[Link]
k/conference/EDSAC99/[Link])
from the original on September 3, 2007.
Retrieved November 19, 2011.
31. "Computer science pioneer Samuel D.
Conte dies at 85" ([Link]
du/about/[Link]) . Purdue Computer
Science. July 1, 2002. Archived ([Link]
[Link]/web/20141006142241/htt
p://[Link]/about/[Link]
l) from the original on October 6, 2014.
Retrieved December 12, 2014.
32. Tedre, Matti (2014). The Science of
Computing: Shaping a Discipline. Taylor
and Francis / CRC Press.
33. Louis Fine (1960). "The Role of the
University in Computers, Data Processing,
and Related Fields". Communications of
the ACM. 2 (9): 7–14.
doi:10.1145/368424.368427 ([Link]
org/10.1145%2F368424.368427) .
S2CID 6740821 ([Link]
[Link]/CorpusID:6740821) .
34. "Stanford University Oral History" ([Link]
[Link]/guides/stanford-unive
rsity-oral-history) . Stanford University.
Archived ([Link]
0170404070555/[Link]
u/guides/stanford-university-oral-histor
y) from the original on April 4, 2017.
Retrieved May 30, 2013.
35. Donald Knuth (1972). "George Forsythe
and the Development of Computer
Science" ([Link]
CME/docs/history/forsythe_knuth.pdf) .
Comms. ACM. Archived ([Link]
[Link]/web/20131020200802/[Link]
[Link]/dept/ICME/docs/history/
forsythe_knuth.pdf) October 20, 2013, at
the Wayback Machine
36. Matti Tedre (2006). "The Development of
Computer Science: A Sociocultural
Perspective" ([Link]
ub/urn_isbn_952-458-867-6/urn_isbn_952
-[Link]) (PDF). p. 260. Archived
([Link]
09/[Link]
n_952-458-867-6/urn_isbn_952-458-867-
[Link]) (PDF) from the original on October
9, 2022. Retrieved December 12, 2014.
37. Peter Naur (1966). "The science of
datalogy". Communications of the ACM.
9 (7): 485. doi:10.1145/365719.366510
([Link]
10) . S2CID 47558402 ([Link]
[Link]/CorpusID:47558402) .
38. Weiss, E.A.; Corley, Henry P.T. "Letters to
the editor". Communications of the ACM.
1 (4): 6. doi:10.1145/368796.368802 (htt
ps://[Link]/10.1145%2F368796.36880
2) . S2CID 5379449 ([Link]
[Link]/CorpusID:5379449) .
39. Communications of the ACM 2(1):p.4
40. IEEE Computer 28(12): p.136
41. P. Mounier-Kuhn, L'Informatique en
France, de la seconde guerre mondiale au
Plan Calcul. L'émergence d'une science,
Paris, PUPS, 2010, ch. 3 & 4.
42. Groth, Dennis P. (February 2010). "Why an
Informatics Degree?" ([Link]
g/magazines/2010/2/69363-why-an-infor
matics-degree) . Communications of the
ACM. [Link]. Archived ([Link]
[Link]/web/20230111224014/htt
ps://[Link]/magazines/2010/2/6
9363-why-an-informatics-degree/abstrac
t) from the original on January 11, 2023.
Retrieved June 14, 2016.
43. Tedre, M. (2011). "Computing as a
Science: A Survey of Competing
Viewpoints". Minds and Machines. 21 (3):
361–387. doi:10.1007/s11023-011-9240-
4 ([Link]
1-9240-4) . S2CID 14263916 ([Link]
[Link]/CorpusID:1426391
6) .
44. Parnas, D.L. (1998). "Software
engineering programmes are not
computer science programmes". Annals
of Software Engineering. 6: 19–37.
doi:10.1023/A:1018949113292 ([Link]
[Link]/10.1023%2FA%3A101894911329
2) . S2CID 35786237 ([Link]
[Link]/CorpusID:35786237) ., p.
19: "Rather than treat software
engineering as a subfield of computer
science, I treat it as an element of the set,
Civil Engineering, Mechanical
Engineering, Chemical Engineering,
Electrical Engineering, [...]"
45. Luk, R.W.P. (2020). "Insight in how
computer science can be a science".
Science & Philosophy. 8 (2): 17–47.
doi:10.23756/sp.v8i2.531 ([Link]
g/10.23756%2Fsp.v8i2.531) .
46. Knuth, D.E. (1974). "Computer science
and its relation to mathematics". The
American Mathematical Monthly. 81 (4):
323–343. doi:10.2307/2318994 (https://
[Link]/10.2307%2F2318994) .
JSTOR 2318994 ([Link]
able/2318994) .
47. "The Philosophy of Computer Science" (h
ttps://[Link]/entries/comput
er-science/#EpisStatCompScie) . The
Philosophy of Computer Science
(Stanford Encyclopedia of Philosophy).
Metaphysics Research Lab, Stanford
University. 2021. Archived ([Link]
[Link]/web/20210916211931/https://
[Link]/entries/computer-scie
nce/#EpisStatCompScie) from the
original on September 16, 2021. Retrieved
September 16, 2021.
48. Wegner, P. (October 13–15, 1976).
Research paradigms in computer science
—Proceedings of the 2nd international
Conference on Software Engineering. San
Francisco, California, United States: IEEE
Computer Society Press, Los Alamitos,
CA.
49. Denning, P.J.; Comer, D.E.; Gries, D.;
Mulder, M.C.; Tucker, A.; Turner, A.J.;
Young, P.R. (January 1989). "Computing
as a discipline". Communications of the
ACM. 32: 9–23.
doi:10.1145/63238.63239 ([Link]
g/10.1145%2F63238.63239) .
S2CID 723103 ([Link]
[Link]/CorpusID:723103) .
50. Denning, Peter J. (2007). "Computing is a
natural science". Communications of the
ACM. 50 (7): 13–18.
doi:10.1145/1272516.1272529 ([Link]
[Link]/10.1145%2F1272516.1272529) .
S2CID 20045303 ([Link]
[Link]/CorpusID:20045303) .
51. Eden, A.H. (2007). "Three Paradigms of
Computer Science" ([Link]
rg/web/20160215100211/[Link]
[Link]/articles/2007/three_paradig
ms_of_computer_science.pdf) (PDF).
Minds and Machines. 17 (2): 135–167.
CiteSeerX [Link].7763 ([Link]
[Link]/viewdoc/summary?doi=1
[Link].7763) . doi:10.1007/s11023-
007-9060-8 ([Link]
11023-007-9060-8) . S2CID 3023076 (htt
ps://[Link]/CorpusID:3
023076) . Archived from the original (htt
p://[Link]/articles/2007/th
ree_paradigms_of_computer_science.pd
f) (PDF) on February 15, 2016.
52. Turner, Raymond; Angius, Nicola (2019).
"The Philosophy of Computer Science" (h
ttps://[Link]/archives/spr201
9/entries/computer-science/) . In Zalta,
Edward N. (ed.). The Stanford
Encyclopedia of Philosophy. Archived (htt
ps://[Link]/web/201910141016
24/[Link]
pr2019/entries/computer-science/)
from the original on October 14, 2019.
Retrieved October 14, 2019.
53. "Computer Science as a Profession" (http
s://[Link]/web/2008061703084
7/[Link]
[Link]) . Computing Sciences
Accreditation Board. May 28, 1997.
Archived from the original ([Link]
[Link]/comp_sci_profession.html) on
June 17, 2008. Retrieved May 23, 2010.
54. Committee on the Fundamentals of
Computer Science: Challenges and
Opportunities, National Research Council
(2004). Computer Science: Reflections on
the Field, Reflections from the Field (htt
p://[Link]/[Link]?record_id=
11106#toc) . National Academies Press.
ISBN 978-0-309-09301-9. Archived (http
s://[Link]/web/2011021812204
2/[Link]
d_id=11106#toc) from the original on
February 18, 2011. Retrieved August 31,
2008.
55. "CSAB Leading Computer Education" (htt
p://[Link]/) . CSAB. August 3,
2011. Archived ([Link]
web/20190120190336/[Link]
org/) from the original on January 20,
2019. Retrieved November 19, 2011.
56. Clay Mathematics Institute ([Link]
[Link]/millennium/P_vs_NP/) P =
NP Archived ([Link]
b/20131014194456/[Link]
[Link]/millennium/P_vs_NP/) October 14,
2013, at the Wayback Machine
57. P. Collins, Graham (October 14, 2002).
"Claude E. Shannon: Founder of
Information Theory" ([Link]
[Link]/[Link]?id=claude-e-s
hannon-founder) . Scientific American.
Archived ([Link]
0140116183558/[Link]
[Link]/[Link]?id=claude-e-shan
non-founder) from the original on
January 16, 2014. Retrieved
December 12, 2014.
58. Van-Nam Huynh; Vladik Kreinovich;
Songsak Sriboonchitta; 2012. Uncertainty
Analysis in Econometrics with
Applications. Springer Science &
Business Media. p. 63. ISBN 978-3-642-
35443-4.
59. Phillip A. Laplante, 2010. Encyclopedia of
Software Engineering Three-Volume Set
(Print). CRC Press. p. 309. ISBN 978-1-
351-24926-3.
60. Muhammad H. Rashid, 2016. SPICE for
Power Electronics and Electric Power.
CRC Press. p. 6. ISBN 978-1-4398-6047-2.
61. "What is an integrated circuit (IC)? A vital
component of modern electronics" (http
s://[Link]/definition/inte
grated-circuit-IC) . [Link]. Archived
([Link]
53823/[Link]
nition/integrated-circuit-IC) from the
original on November 15, 2021. Retrieved
November 15, 2021.
62. A. Thisted, Ronald (April 7, 1997).
"Computer Architecture" ([Link]
[Link]/~thisted/Distribute/comparc
[Link]) (PDF). The University of Chicago.
Archived ([Link]
e/20221009/[Link]
~thisted/Distribute/[Link]) (PDF)
from the original on October 9, 2022.
63. Jiacun Wang, 2017. Real-Time Embedded
Systems. Wiley. p. 12. ISBN 978-1-119-
42070-5.
64. Gordana Dodig-Crnkovic; Raffaela
Giovagnoli; 2013. Computing Nature:
Turing Centenary Perspective. Springer
Science & Business Media. p. 247.
ISBN 978-3-642-37225-4.
65. Simon Elias Bibri; 2018. Smart
Sustainable Cities of the Future: The
Untapped Potential of Big Data Analytics
and Context-Aware Computing for
Advancing Sustainability. Springer. p. 74.
ISBN 978-3-319-73981-6.
66. Katz, Jonathan (2008). Introduction to
modern cryptography ([Link]
[Link]/oclc/137325053) . Yehuda
Lindell. Boca Raton: Chapman &
Hall/CRC. ISBN 978-1-58488-551-1.
OCLC 137325053 ([Link]
org/oclc/137325053) . Archived (https://
[Link]/web/20220506003141/
[Link]
3) from the original on May 6, 2022.
Retrieved November 17, 2021.
67. Rapaport, William J. (September 20,
2013). "What Is Computation?" ([Link]
[Link]/~rapaport/computatio
[Link]) . State University of New York at
Buffalo. Archived ([Link]
g/web/20010214002845/[Link]
[Link]/~rapaport/[Link]
ml) from the original on February 14,
2001. Retrieved August 31, 2013.
68. B. Jack Copeland, 2012. Alan Turing's
Electronic Brain: The Struggle to Build the
ACE, the World's Fastest Computer. OUP
Oxford. p. 107. ISBN 978-0-19-960915-4.
69. Charles W. Herbert, 2010. An Introduction
to Programming Using Alice 2.2. Cengage
Learning. p. 122. ISBN 0-538-47866-7.
70. Md. Rezaul Karim; Sridhar Alla; 2017.
Scala and Spark for Big Data Analytics:
Explore the concepts of functional
programming, data streaming, and
machine learning. Packt Publishing Ltd.
p. 87. ISBN 978-1-78355-050-0.
71. Lex Sheehan, 2017. Learning Functional
Programming in Go: Change the way you
approach your applications using
functional programming in Go. Packt
Publishing Ltd. p. 16. ISBN 978-1-78728-
604-7.
72. Evelio Padilla, 2015. Substation
Automation Systems: Design and
Implementation. Wiley. p. 245. ISBN 978-
1-118-98730-8.
73. "Multi-Paradigm Programming Language"
([Link]
52407/[Link]
S/docs/[Link]) .
[Link]. Mozilla
Foundation. Archived from the original (ht
tps://[Link]/en-US/docs/
[Link]) on August
21, 2013.
74. Meyer, Bertrand (April 2009). "Viewpoint:
Research evaluation for computer
science". Communications of the ACM.
25 (4): 31–34.
doi:10.1145/1498765.1498780 ([Link]
[Link]/10.1145%2F1498765.1498780) .
S2CID 8625066 ([Link]
[Link]/CorpusID:8625066) .
75. Patterson, David (August 1999).
"Evaluating Computer Scientists and
Engineers For Promotion and Tenure" (htt
p://[Link]/resources/bp-view/evaluating
_computer_scientists_and_engineers_for
_promotion_and_tenure/) . Computing
Research Association. Archived (https://
[Link]/web/20150722020941/
[Link]
ng_computer_scientists_and_engineers_f
or_promotion_and_tenure/) from the
original on July 22, 2015. Retrieved
July 19, 2015.
76. Fortnow, Lance (August 2009).
"Viewpoint: Time for Computer Science to
Grow Up" ([Link]
es/2009/8/34492-viewpoint-time-for-com
puter-science-to-grow-up/fulltext) .
Communications of the ACM. 52 (8): 33–
35. doi:10.1145/1536616.1536631 (http
s://[Link]/10.1145%2F1536616.153663
1) . Archived ([Link]
b/20160307204517/[Link]
g/magazines/2009/8/34492-viewpoint-ti
me-for-computer-science-to-grow-up/fullt
ext) from the original on March 7, 2016.
Retrieved July 19, 2015.
77. Burns, Judith (April 3, 2016). "Computer
science A-level 1970s style" ([Link]
[Link]/news/education-3589045
0) . Archived ([Link]
b/20190209232622/[Link]
uk/news/education-35890450) from the
original on February 9, 2019. Retrieved
February 9, 2019.
78. Jones, Michael (October 1915).
"Developing a Computer Science
Curriculum in England: Exploring
Approaches in the USA" ([Link]
[Link]/web/20161022182632/[Link]
[Link]/sites/default/files/repor
t-documents/Jones%20M%20Report%20
2015%20%[Link]) (PDF). Winston
Churchill Memorial Trust. Archived from
the original ([Link]
es/default/files/report-documents/Jone
s%20M%20Report%202015%20%20Final.
pdf) (PDF) on October 22, 2016.
Retrieved February 9, 2019.
79. "Computer Science: Not Just an Elective
Anymore" ([Link]
ticles/2014/02/26/22computer_ep.h33.h
tml) . Education Week. February 25,
2014. Archived ([Link]
web/20161201114336/[Link]
[Link]/ew/articles/2014/02/26/22compu
ter_ep.[Link]) from the original on
December 1, 2016. Retrieved July 20,
2015.
80. Wilson, Cameron; Sudol, Leigh Ann;
Stephenson, Chris; Stehlik, Mark (2010).
"Running on Empty: The Failure to Teach
K–12 Computer Science in the Digital
Age" ([Link]
[Link]) (PDF). ACM. Archived (http
s://[Link]/web/2013061201123
2/[Link]
[Link]) (PDF) from the original on June
12, 2013. Retrieved July 20, 2015.
81. "2021 State of computer science
education: Accelerating action through
advocacy" ([Link]
21_state_of_cs.pdf) (PDF). [Link],
CSTA, & ECEP Alliance. 2021. Archived (h
ttps://[Link]/archive/2022100
9/[Link]
of_cs.pdf) (PDF) from the original on
October 9, 2022.
82. "A is for algorithm" ([Link]
[Link]/news/international/21601250-glo
bal-push-more-computer-science-classro
oms-starting-bear-fruit) . The Economist.
April 26, 2014. Archived ([Link]
[Link]/web/20171018071708/[Link]
[Link]/news/international/2
1601250-global-push-more-computer-sci
ence-classrooms-starting-bear-fruit)
from the original on October 18, 2017.
Retrieved August 26, 2017.
83. "Computing at School International
comparisons" ([Link]
eb/20130508214038/[Link]
[Link]/data/uploads/internat
[Link]) (PDF).
Archived from the original ([Link]
[Link]/data/uploads/int
[Link]) (PDF) on
May 8, 2013. Retrieved July 20, 2015.
84. "Adding Coding to the Curriculum" (http
s://[Link]/archive/20220101/h
ttps://[Link]/2014/03/24/wo
rld/europe/adding-coding-to-the-curriculu
[Link]) . The New York Times. March 23,
2014. Archived from the original (https://
[Link]/2014/03/24/world/eu
rope/[Link]
ml) on January 1, 2022.

Further reading

Overview

Tucker, Allen B. (2004). Computer


Science Handbook (2nd ed.). Chapman
and Hall/CRC. ISBN 978-1-58488-360-9.
"Within more than 70 chapters, every
one new or significantly revised, one can
find any kind of information and
references about computer science one
can imagine. [...] all in all, there is
absolute nothing about Computer
Science that can not be found in the 2.5
kilogram-encyclopaedia with its 110
survey articles [...]." (Christoph Meinel,
Zentralblatt MATH)
van Leeuwen, Jan (1994). Handbook of
Theoretical Computer Science. The MIT
Press. ISBN 978-0-262-72020-5.
"[...] this set is the most unique and
possibly the most useful to the
[theoretical computer science]
community, in support both of teaching
and research [...]. The books can be
used by anyone wanting simply to gain
an understanding of one of these areas,
or by someone desiring to be in
research in a topic, or by instructors
wishing to find timely information on a
subject they are teaching outside their
major areas of expertise." (Rocky Ross,
SIGACT News)
Ralston, Anthony; Reilly, Edwin D.;
Hemmendinger, David (2000).
Encyclopedia of Computer Science (htt
p://[Link]/[Link])
(4th ed.). Grove's Dictionaries. ISBN 978-
1-56159-248-7. Archived ([Link]
[Link]/web/20200608005417/http
s://[Link]/doi/book/10.5555/10741
00) from the original on June 8, 2020.
Retrieved February 6, 2011.
"Since 1976, this has been the definitive
reference work on computer, computing,
and computer science. [...]
Alphabetically arranged and classified
into broad subject areas, the entries
cover hardware, computer systems,
information and data, software, the
mathematics of computing, theory of
computation, methodologies,
applications, and computing milieu. The
editors have done a commendable job
of blending historical perspective and
practical reference information. The
encyclopedia remains essential for
most public and academic library
reference collections." (Joe Accardin,
Northeastern Illinois Univ., Chicago)
Edwin D. Reilly (2003). Milestones in
Computer Science and Information
Technology ([Link]
milestonesincomp0000reil) .
Greenwood Publishing Group. ISBN 978-
1-57356-521-9.

Selected literature

Knuth, Donald E. (1996). Selected Papers


on Computer Science. CSLI Publications,
Cambridge University Press.
Collier, Bruce (1990). The little engine
that could've: The calculating machines
of Charles Babbage ([Link]
[Link]/collier/[Link]) . Garland
Publishing Inc. ISBN 978-0-8240-0043-1.
Archived ([Link]
0070120190231/[Link]
fo/collier/[Link]) from the original
on January 20, 2007. Retrieved May 4,
2013.
Cohen, Bernard (2000). Howard Aiken,
Portrait of a computer pioneer. The MIT
press. ISBN 978-0-262-53179-5.
Tedre, Matti (2014). The Science of
Computing: Shaping a Discipline. CRC
Press, Taylor & Francis.
Randell, Brian (1973). The origins of
Digital computers, Selected Papers.
Springer-Verlag. ISBN 978-3-540-06169-
4.
"Covering a period from 1966 to 1993,
its interest lies not only in the content of
each of these papers – still timely today
– but also in their being put together so
that ideas expressed at different times
complement each other nicely." (N.
Bernard, Zentralblatt MATH)

Articles

Peter J. Denning. Is computer science


science? ([Link]
fm?id=1053309&coll=&dl=ACM&CFID=15
151515&CFTOKEN=6184618) ,
Communications of the ACM, April
2005.
Peter J. Denning, Great principles in
computing curricula ([Link]
g/[Link]?id=971303&dl=ACM&coll=
&CFID=15151515&CFTOKEN=6184618) ,
Technical Symposium on Computer
Science Education, 2004.
Research evaluation for computer
science, Informatics Europe report (htt
p://[Link]/media/Como%20Co
nference/Tanca-Research_Assessment_
A_new_Initiative_by_Informatics_Europ
[Link]) Archived ([Link]
g/web/20171018181136/[Link]
[Link]/media/Como%20Conference/Ta
nca-Research_Assessment_A_new_Initi
ative_by_Informatics_Europe.pdf)
October 18, 2017, at the Wayback
Machine. Shorter journal version:
Bertrand Meyer, Christine Choppy, Jan
van Leeuwen and Jorgen Staunstrup,
Research evaluation for computer
science, in Communications of the ACM,
vol. 52, no. 4, pp. 31–34, April 2009.

Curriculum and classification

Association for Computing Machinery.


1998 ACM Computing Classification
System ([Link]
0080828002940/[Link]
ass/1998/[Link]) . 1998.
Joint Task Force of Association for
Computing Machinery (ACM),
Association for Information Systems
(AIS) and IEEE Computer Society (IEEE
CS). Computing Curricula 2005: The
Overview Report ([Link]
g/web/20141021153204/[Link]
[Link]/education/curric_vols/CC2005-M
[Link]) . September 30, 2005.
Norman Gibbs, Allen Tucker. "A model
curriculum for a liberal arts degree in
computer science". Communications of
the ACM, Volume 29 Issue 3, March
1986.

External links
Wikibooks has a book on the topic of:
Informatics Practices for Class XI
(CBSE)

Computer science
at Wikipedia's sister projects
Definitions
from
Wiktionary
Media from
Commons
Quotations
from
Wikiquote
Textbooks
from
Wikibooks
Resources
from
Wikiversity

Computer science ([Link]


mputers/Computer_Science/) at Curlie
Scholarly Societies in Computer
Science ([Link]
a/society/compsci_soc.html)
Archived ([Link]
eb/20110623002546/[Link]
[Link]/society/compsci_so
[Link]) June 23, 2011, at the
Wayback Machine
What is Computer Science? ([Link]
[Link]/watch?v=fjMU-km-Cso)
Best Papers Awards in Computer
Science since 1996 ([Link]
[Link]/best_paper_awards.html)
Photographs of computer scientists
([Link]
by Bertrand Meyer
[Link] ([Link]
[Link]/department/[Link])
Bibliography and academic
search engines

CiteSeerx ([Link]
u/) (article): search engine, digital
library and repository for scientific
and academic papers with a focus
on computer and information
science.
DBLP Computer Science
Bibliography ([Link]
e/) (article): computer science
bibliography website hosted at
Universität Trier, in Germany.
The Collection of Computer Science
Bibliographies ([Link]
[Link]/bibliography/) (Collection of
Computer Science Bibliographies)

Professional organizations

Association for Computing


Machinery ([Link]
IEEE Computer Society ([Link]
[Link]/)
Informatics Europe ([Link]
[Link]/)
AAAI ([Link]
AAAS Computer Science ([Link]
[Link]/web/20160205000119/http://
[Link]/categories/co
mputer-science)
Misc

Computer Science—Stack Exchange


([Link] : a
community-run question-and-
answer site for computer science
What is computer science ([Link]
[Link]/AboutCS/WhatIsCS.p
df) Archived ([Link]
g/web/20150218130340/[Link]
[Link]/AboutCS/[Link]
f) February 18, 2015, at the
Wayback Machine
Is computer science science? (http
s://[Link]/web/20170810
205524/[Link]
ohn/[Link])
Computer Science (Software) Must
be Considered as an Independent
Discipline. ([Link]
[Link]/publication/306078165_Comp
uter_Science_Software_Must_be_Co
nsidered_as_an_Independent_Discip
line_Computer_Science_Software_m
ust_not_be_Treated_as_a_Sub-Dom
ain_or_Subset_of_Mathematics)

Retrieved from
"[Link]
title=Computer_science&oldid=114379695
3"

This page was last edited on 9 March 2023,


at 23:32 (UTC). •
Content is available under CC BY-SA 3.0
unless otherwise noted.

You might also like