Computer science

Charles Babbage, sometimes referred to as the "father of computing".
Ada Lovelace published the first algorithm intended for processing on a computer.

Study of computation, automation, and information.

- Computer science

500 related topics


Computational geometry

Charles Babbage, sometimes referred to as the "father of computing".

Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry.


Practice and study of techniques for secure communication in the presence of adversarial behavior.

Lorenz cipher machine, used in World War II to encrypt communications of the German High Command
Alphabet shift ciphers are believed to have been used by Julius Caesar over 2,000 years ago. This is an example with k = 3. In other words, the letters in the alphabet are shifted three in one direction to encrypt and three in the other direction to decrypt.
Reconstructed ancient Greek scytale, an early cipher device
First page of a book by Al-Kindi which discusses encryption of messages
16th-century book-shaped French cipher machine, with arms of Henri II of France
Enciphered letter from Gabriel de Luetz d'Aramon, French Ambassador to the Ottoman Empire, after 1546, with partial decipherment
Symmetric-key cryptography, where a single key is used for encryption and decryption
One round (out of 8.5) of the IDEA cipher, used in most versions of PGP and OpenPGP compatible software for time-efficient encryption of messages
Public-key cryptography, where different keys are used for encryption and decryption.
Whitfield Diffie and Martin Hellman, authors of the first published paper on public-key cryptography.
In this example the message is only signed and not encrypted.
1) Alice signs a message with her private key.
2) Bob can verify that Alice sent the message and that the message has not been modified.
Variants of the Enigma machine, used by Germany's military and civil authorities from the late 1920s through World War II, implemented a complex electro-mechanical polyalphabetic cipher. Breaking and reading of the Enigma cipher at Poland's Cipher Bureau, for 7 years before the war, and subsequent decryption at Bletchley Park, was important to Allied victory.
Poznań monument (center) to Polish cryptanalysts whose breaking of Germany's Enigma machine ciphers, beginning in 1932, altered the course of World War II
NSA headquarters in Fort Meade, Maryland

Modern cryptography exists at the intersection of the disciplines of mathematics, computer science, electrical engineering, communication science, and physics.

Human–computer interaction

Research in the design and the use of computer technology, which focuses on the interfaces between people (users) and computers.

A computer monitor provides a visual interface between the machine and the user.
The user interacts directly with hardware for the human input and output such as displays, e.g. through a graphical user interface. The user interacts with the computer over this software interface using the given input and output (I/O) hardware.
Software and hardware are matched so that the processing of the user input is fast enough, and the latency of the computer output is not disruptive to the workflow.

As a field of research, human–computer interaction is situated at the intersection of computer science, behavioral sciences, design, media studies, and several other fields of study.

Model of computation

Charles Babbage, sometimes referred to as the "father of computing".

In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input.

Natural language processing

An automated online assistant providing customer service on a web page, an example of an application where natural language processing is a major component.

Natural language processing (NLP) is a subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human language, in particular how to program computers to process and analyze large amounts of natural language data.

Turing Award

Stephen Kettle's slate statue of Alan Turing at Bletchley Park

The ACM A. M. Turing Award is an annual prize given by the Association for Computing Machinery (ACM) for contributions of lasting and major technical importance to computer science.


Flowchart of an algorithm (Euclid's algorithm) for calculating the greatest common divisor (g.c.d.) of two numbers a and b in locations named A and B. The algorithm proceeds by successive subtractions in two loops: IF the test B ≥ A yields "yes" or "true" (more accurately, the number b in location B is greater than or equal to the number a in location A) THEN, the algorithm specifies B ← B − A (meaning the number b − a replaces the old b). Similarly, IF A > B, THEN A ← A − B. The process terminates when (the contents of) B is 0, yielding the g.c.d. in A. (Algorithm derived from Scott 2009:13; symbols and drawing style from Tausworthe 1977).
Ada Lovelace's diagram from "note G", the first published computer algorithm
Logical NAND algorithm implemented electronically in 7400 chip
Flowchart examples of the canonical Böhm-Jacopini structures: the SEQUENCE (rectangles descending the page), the WHILE-DO and the IF-THEN-ELSE. The three structures are made of the primitive conditional GOTO (IF test THEN GOTO step xxx, shown as diamond), the unconditional GOTO (rectangle), various assignment operators (rectangle), and HALT (rectangle). Nesting of these structures inside assignment-blocks result in complex diagrams (cf. Tausworthe 1977:100, 114).
The example-diagram of Euclid's algorithm from T.L. Heath (1908), with more detail added. Euclid does not go beyond a third measuring and gives no numerical examples. Nicomachus gives the example of 49 and 21: "I subtract the less from the greater; 28 is left; then again I subtract from this the same 21 (for this is possible); 7 is left; I subtract this from 21, 14 is left; from which I again subtract 7 (for this is possible); 7 is left, but 7 cannot be subtracted from 7." Heath comments that "The last phrase is curious, but the meaning of it is obvious enough, as also the meaning of the phrase about ending 'at one and the same number'."(Heath 1908:300).
A graphical expression of Euclid's algorithm to find the greatest common divisor for 1599 and 650.
"Inelegant" is a translation of Knuth's version of the algorithm with a subtraction-based remainder-loop replacing his use of division (or a "modulus" instruction). Derived from Knuth 1973:2–4. Depending on the two numbers "Inelegant" may compute the g.c.d. in fewer steps than "Elegant".
Alan Turing's statue at Bletchley Park

In mathematics and computer science, an algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation.

Computer scientist

Charles Babbage, sometimes referred to as the "father of computing".

A computer scientist is a person who has acquired the knowledge of computer science, the study of the theoretical foundations of information and computation and their application.

Computer network

Set of computers sharing resources located on or provided by network nodes.

Network Packet
Common network topologies
A sample overlay network
Network links
Fiber optic cables are used to transmit light from one computer/network node to another
2007 map showing submarine optical fiber telecommunication cables around the world.
Computers are very often connected to networks using wireless links
An ATM network interface in the form of an accessory card. A lot of network interfaces are built-in.
A typical home or small office router showing the ADSL telephone line and Ethernet network cable connections
The TCP/IP model and its relation to common protocols used at different layers of the model.
Message flows between two devices (A-B) at the four layers of the TCP/IP model in the presence of a router (R). Red flows are effective communication paths, black paths are across the actual network links.
Asynchronous Transfer Mode
Routing calculates good paths through a network for information to take. For example, from node 1 to node 6 the best routes are likely to be 1-8-7-6, 1-8-10-6 or 1-9-10-6, as these are the shortest routes.
Partial map of the Internet, based on the January 15, 2005 data found on . Each line is drawn between two nodes, representing two IP addresses. The length of the lines is indicative of the delay between those two nodes. This graph represents less than 30% of the Class C networks reachable.

Computer networking may be considered a branch of computer science, computer engineering, and telecommunications, since it relies on the theoretical and practical application of the related disciplines.


Any type of arithmetic or non-arithmetic calculation that follows a well-defined model .

Arithmetic tables for children, Lausanne, 1835

An especially well-known discipline of the study of computation is computer science.