STUDY GUIDE · ABOUT 12 MIN READ

Computer science

Press the letter A. Before it reaches your screen, it passes through six layers of abstraction, each a field of computer science. Pick a layer to follow it down to the electrons.

What computer science is, in short

Computer science is the study of computation: what can be computed, how to do it efficiently, and how to build the machines and software that do it. It sits between mathematics, which supplies its theory, and engineering, which builds its systems.

As Edsger Dijkstra is often quoted, it's no more about computers than astronomy is about telescopes. Its core ideas, algorithms, abstraction and information, would still matter without any hardware at all.

Roots
Mathematics, logic, electrical engineering
Founding idea
Turing's machine (1936)
First CS degree
1953, Cambridge (diploma)
Top award
The ACM Turing Award, since 1966
CORE CONCEPTS · LAYERS 4 AND 6

Everything is built from 1s, 0s and gates

A gate takes bits in and gives one bit out. Combine millions and you get arithmetic, memory and every program ever written. Flip the inputs, then try the byte.

LOGIC GATE
XOR
1
ABOUT
000
011
101
110
Outputs 1 when the inputs differ. Two XORs and an AND make a circuit that adds binary numbers.
ONE BYTE · TAP THE BITS
DECIMAL65
HEX0x41
ASCIIA
Each bit doubles the one to its right, so 8 bits give 256 values (0–255). In ASCII, 65 is the letter A: the keypress from the top of this page.
SUBFIELDS

A map of the field

Tap any area to see the question it asks.
THEORY
SYSTEMS
APPLICATIONS
AlgorithmsDesigning step-by-step methods and measuring how their cost grows.Typical question: What's the fastest way to sort a billion numbers?
CHALLENGES

Solved, open, and proven impossible

SOLVEDSorting has a speed limitAny sort that works by comparing items needs about n log n comparisons in the worst case. Merge sort reaches that limit, so in that sense the problem is finished.
OPENDoes P equal NP?If a solution is quick to check, is it always quick to find? Most think not, but no one has proved it. It's one of the Clay Institute's $1 million Millennium Prize Problems.
IMPOSSIBLEThe halting problemIn 1936 Turing proved no program can decide, for every program and input, whether it will eventually stop. Some questions are beyond any computer.
Scale.Systems that work for 100 users can fail at 100 million.Security.Every new feature is a new place to attack.Energy.Data centres use a growing share of the world's electricity.Bias.Algorithms trained on past data can repeat past unfairness.

From a thought experiment to your pocket

1843The first programAda Lovelace published an algorithm for Babbage's never-built Analytical Engine.
1936The Turing machineAlan Turing defined what it means to compute, and its limits.
1945Stored programsVon Neumann's design kept programs in memory with data, the plan most computers still follow.
1947The transistorInvented at Bell Labs; it replaced fragile vacuum tubes.
1969ARPANETThe network that grew into the internet sent its first message.
1971The microprocessorIntel's 4004 put a whole CPU on one chip.
1989The World Wide WebTim Berners-Lee proposed linked pages at CERN.
2012Deep learning takes offA neural network called AlexNet won the ImageNet image-recognition challenge by a wide margin.
READING LIST
Code: The Hidden Language of Computer Hardware and SoftwareCharles Petzold · 1999 · the layers, from switches up
Structure and Interpretation of Computer ProgramsAbelson & Sussman · 1985 · abstraction and programming
Introduction to AlgorithmsCormen, Leiserson, Rivest & Stein · 1990 · the standard algorithms text
Gödel, Escher, BachDouglas Hofstadter · 1979 · computation, logic and mind

Think like a computer scientist? Prove it.

Try the computer science test, or measure your reasoning with our full IQ test: 60 questions, about 30 minutes.