← Open Interactive Timeline Board

1.1.1.1 Theory of Computation

Encyclopedia/1. The Cosmos & The Natural World/1. Mathematics & Formal Systems/08. Computing & Information  •  Curated by Admin Timeline.sg

Algorithms · Complexity theory · Information entropy

Chronological Storyline (23 Milestones)

2700 BCE

Mesopotamian abacus emerges

The earliest abacus-like counting boards appear in Mesopotamia, providing a physical tool for arithmetic computation that would spread and evolve across civilizations for millennia. · Wikipedia: https://en.wikipedia.org/wiki/Abacus

Line art drawing of an abacus
Line art drawing of an abacus
By Pearson Scott Foresman - This image has been extracted from another file, Public domain, https://commons.wikimedia.org/w/index.php?curid=3503686
500 BCE

Panini formalizes Sanskrit grammar

The ancient Indian grammarian Panini composed the Ashtadhyayi, a rigorous formal rule system for Sanskrit grammar that is widely regarded as a precursor to modern formal language theory and metalinguistic notation. Source — Wikipedia:

400 BCE

Counting rods used in China

Chinese mathematicians employed counting rods for arithmetic and algebraic computation, enabling sophisticated calculations including solutions to linear equations and extraction of square and cube roots. Source — Wikipedia:

Drawing of Pascal's Triangle published in C.E.1303 by Zhu Shijie (C.E.1260-1320), in his Si Yuan Yu Jian. It was called Jia Xian triangle or Yanghui Triangle by the Chinese, after the mathematician Jia Xian & Yang Hui.
Drawing of Pascal's Triangle published in C.E.1303 by Zhu Shijie (C.E.1260-1320), in his Si Yuan Yu Jian. It was called Jia Xian triangle or Yanghui Triangle by the Chinese, after the mathematician Jia Xian & Yang Hui.
By Yáng Huī (楊輝), ca. 1238–1298) - w:en:Image:Yanghui_triangle.gif, Public domain, https://commons.wikimedia.org/w/index.php?curid=1189650
200 BCE

Suanpan abacus documented in China

The Chinese suanpan abacus was developed and refined, becoming a dominant computing instrument in East Asia and later spreading to Japan as the soroban, where it remained in widespread use into the modern era. · Wikipedia: https://en.wikipedia.org/wiki/Suanpan

Abacus
Abacus
By Encyclopædia Britannica - Article for "abacus", 9th edition Encyclopedia Britannica, volume 1 (1875); scanned and uploaded by Malcolm Farmer Transferred from en.wikipedia to Commons., Public domain, https://commons.wikimedia.org/w/index.php?curid=146649
820 CE

al-Khwarizmi writes on algebra

Muhammad ibn Musa al-Khwarizmi published his treatise on algebra at the House of Wisdom in Baghdad, introducing systematic methods for solving linear and quadratic equations; his name gave rise to the word 'algorithm.' · Wikipedia: https://en.wikipedia.org/wiki/Al-Khwarizmi

Monumento a Muhammad al-Juarismi en la Ciudad Universitaria de Madrid
Monumento a Muhammad al-Juarismi en la Ciudad Universitaria de Madrid
By Zarateman - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=162213187
1206 CE

al-Jazari builds programmable automata

The Kurdish engineer al-Jazari described a programmable drum-based automaton in his 'Book of Knowledge of Ingenious Mechanical Devices,' representing one of the earliest known examples of programmable machinery using cams and pegs. Source — Wikipedia:

The elephant clock from Al-Jazari's manuscript.
The elephant clock from Al-Jazari's manuscript.
By Al-Jazari - http://www.muslimheritage.com/topics/default.cfm?ArticleID=466, Public domain, https://commons.wikimedia.org/w/index.php?curid=4173094
1377 CE

Jikji printed with Korean movable type

Korean monks at the Heungdeok Temple printed Jikji using metal movable type, predating European movable type printing by decades and demonstrating an early form of information reproduction technology. Source — Wikipedia:

Two pages (pp. 4v–5r) of a 1377 manuscript of the Jikji, the oldest example of printing with metal movable type. Held at and digitized by the Département des Manuscrits at the Bibliothèque nationale de France
Two pages (pp. 4v–5r) of a 1377 manuscript of the Jikji, the oldest example of printing with metal movable type. Held at and digitized by the Département des Manuscrits at the Bibliothèque nationale de France
By Unknown author - https://gallica.bnf.fr/ark:/12148/btv1b10527116j, Public domain, https://commons.wikimedia.org/w/index.php?curid=148191571
1837 CE

Babbage designs Analytical Engine

Charles Babbage designed the Analytical Engine, a proposed mechanical general-purpose computer incorporating an arithmetic logic unit, conditional branching, and memory, though it was never completed in his lifetime. Source — Wikipedia:

This was the first fully-automatic calculating machine. British computing pioneer Charles Babbage (1791-1871) first conceived the idea of an advanced calculating machine to calculate and print mathematical tables in 1812. This machine, conceived by Babbage in 1834, was designed to evaluate any mathematical formula and to have even higher powers of analysis than his original Difference engine of the 1820s. Only part of the machine was completed before his death in 1871. This is a portion of the mill with a printing mechanism. Babbage was also a reformer, mathematician, philosopher, inventor and political economist.
This was the first fully-automatic calculating machine. British computing pioneer Charles Babbage (1791-1871) first conceived the idea of an advanced calculating machine to calculate and print mathematical tables in 1812. This machine, conceived by Babbage in 1834, was designed to evaluate any mathematical formula and to have even higher powers of analysis than his original Difference engine of the 1820s. Only part of the machine was completed before his death in 1871. This is a portion of the mill with a printing mechanism. Babbage was also a reformer, mathematician, philosopher, inventor and political economist.
By Charles Babbage - Upload by Mrjohncummings 2013-08-28 15:10, CC BY-SA 2.0, https://commons.wikimedia.org/w/index.php?curid=28024313
Babbage's Analytical Engine - Computerphile
Babbage's Analytical Engine - Computerphile
1843 CE

Lovelace describes first algorithm

Ada Lovelace published notes on the Analytical Engine including a method for computing Bernoulli numbers, now widely recognized as the first published algorithm intended for machine execution. Source — Wikipedia:

Ada Lovelace daguerreotype by Antoine Claudet 1843 - cropped
Ada Lovelace daguerreotype by Antoine Claudet 1843 - cropped
By Antoine Claudet - shared by Paul Graham on x.com https://x.com/paulg/status/1927655441913250041, Public domain, https://commons.wikimedia.org/w/index.php?curid=166285599
1931 CE

Gödel proves incompleteness theorems

Kurt Gödel published his incompleteness theorems, demonstrating that any sufficiently powerful formal axiomatic system contains true statements that are unprovable within the system, profoundly impacting the foundations of computation. Source — Wikipedia:

Gödel's Incompleteness Theorem - Numberphile
Gödel's Incompleteness Theorem - Numberphile
1936 CE

Turing defines computability

Alan Turing introduced the Turing machine in 'On Computable Numbers,' providing a formal model of computation that defined the limits of what is mechanically computable and laid the foundation for theoretical computer science. · Wikipedia: https://en.wikipedia.org/wiki/Turing_machine

Turing Machine, reconstructed by Mike Davey as seen at Go Ask ALICE at Harvard University
Turing Machine, reconstructed by Mike Davey as seen at Go Ask ALICE at Harvard University
By Rocky Acosta - Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=24369879
1966: Alan Turing's Machines | Mathematics in Action | BBC Archive
1966: Alan Turing's Machines | Mathematics in Action | BBC Archive
1936 CE

Church's lambda calculus

Alonzo Church published the lambda calculus, an alternative formal system for defining computable functions, and conjectured with Turing that their equivalent models capture the intuitive notion of effective calculability. · Wikipedia: https://en.wikipedia.org/wiki/Lambda_calculus

The lambda abstraction decomposed. The λ {\displaystyle \lambda } indicates the start of a function. x {\displaystyle x} is the input parameter. M {\displaystyle M} is the body, separated by a dot separator " . {\displaystyle .} " from the input parameter.
The lambda abstraction decomposed. The λ {\displaystyle \lambda } indicates the start of a function. x {\displaystyle x} is the input parameter. M {\displaystyle M} is the body, separated by a dot separator " . {\displaystyle .} " from the input parameter.
By Epachamo - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=178642643
1948 CE

Shannon founds information theory

Claude Shannon published 'A Mathematical Theory of Communication,' introducing information entropy as a measure of uncertainty and establishing the theoretical foundations of digital communication and data compression. · Wikipedia: https://en.wikipedia.org/wiki/Information_theory

Claude Shannon - Father of the Information Age
Claude Shannon - Father of the Information Age
1953 CE

Markov chains and algorithms

Andrey Markov Jr. published 'The Theory of Algorithms,' formalizing the concept of normal algorithms and contributing to the Soviet school of computability theory parallel to Western developments. Source — Wikipedia:

1956 CE

Chomsky hierarchy of grammars

Noam Chomsky published his classification of formal grammars into four types (regular, context-free, context-sensitive, and recursively enumerable), establishing a hierarchy that connects formal language theory to automata and computation. · Wikipedia: https://en.wikipedia.org/wiki/Chomsky_hierarchy

A graphical representation of the sets of languages included in the w:Chomsky hierarchy.
A graphical representation of the sets of languages included in the w:Chomsky hierarchy.
By J. Finkelstein - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=9405226
1965 CE

Cook formulates NP-completeness

Stephen Cook proved that the Boolean satisfiability problem is NP-complete, introducing the concept of NP-completeness and establishing the P versus NP problem as a central question in computer science. · Wikipedia: https://en.wikipedia.org/wiki/Cook%E2%80%93Levin_theorem

1965 CE

Hartmanis and Stearns define complexity

Juris Hartmanis and Richard Stearns published 'On the Computational Complexity of Algorithms,' formally defining time complexity classes and establishing computational complexity theory as a field. Source — Wikipedia:

1972 CE

Karp shows 21 NP-complete problems

Richard Karp demonstrated that 21 diverse combinatorial problems are all NP-complete, showing the breadth of the P versus NP question and cementing the practical importance of complexity theory. · Wikipedia: https://en.wikipedia.org/wiki/Karp's_21_NP-complete_problems

1977 CE

RSA cryptosystem published

Ron Rivest, Adi Shamir, and Leonard Adleman published the RSA public-key cryptosystem, whose security relies on the computational hardness of factoring large integers, linking complexity theory to practical cryptography. · Wikipedia: https://en.wikipedia.org/wiki/RSA_(cryptosystem)

Prime Numbers & RSA Encryption Algorithm - Computerphile
Prime Numbers & RSA Encryption Algorithm - Computerphile
1979 CE

Adleman pioneers DNA computing

Leonard Adleman demonstrated the first experimental computation using DNA molecules to solve a Hamiltonian path problem, opening the field of molecular computing and expanding the physical substrates of computation. · Wikipedia: https://en.wikipedia.org/wiki/DNA_computing

Animation of the structure of a section of DNA. The bases lie horizontally between the two spiraling strands. Nitrogen: blue, Oxygen: red, carbon: green, hydrogen: white, phosphorous: orange
Animation of the structure of a section of DNA. The bases lie horizontally between the two spiraling strands. Nitrogen: blue, Oxygen: red, carbon: green, hydrogen: white, phosphorous: orange
By Original uploader was Richard Wheeler (Zephyris) at en.wikipedia - Originally from en.wikipedia; description page is/was here., CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=2118354
1985 CE

Deutsch defines quantum Turing machine

David Deutsch published the concept of a universal quantum Turing machine, establishing the theoretical foundation of quantum computation and showing that quantum computers could in principle simulate any physical process. · Wikipedia: https://en.wikipedia.org/wiki/Quantum_Turing_machine

1994 CE

Shor's quantum factoring algorithm

Peter Shor published a polynomial-time quantum algorithm for integer factorization, demonstrating that quantum computers could break RSA and establishing quantum complexity theory as a practically important field. · Wikipedia: https://en.wikipedia.org/wiki/Shor's_algorithm

2002 CE

AKS primality test discovered

Manindra Agrawal, Neeraj Kayal, and Nitin Saxena at the Indian Institute of Technology Kanpur published the AKS primality test, the first deterministic polynomial-time algorithm for testing primality, resolving a long-standing open problem. · Wikipedia: https://en.wikipedia.org/wiki/AKS_primality_test