List of important publications in theoretical computer science
This is a list of important publications in theoretical computer science, organized by field.
Some reasons why a particular publication might be regarded as important:
- Topic creator – A publication that created a new topic
- Breakthrough – A publication that changed scientific knowledge significantly
- Influence – A publication which has significantly influenced the world or has had a massive impact on the teaching of theoretical computer science.
[Computability]
''Cutland's ''Computability: An Introduction to Recursive Function Theory'' (Cambridge)''
The review of this early text by Carl Smith of Purdue University, reports that this a text with an "appropriate blend of intuition and rigor… in the exposition of proofs" that presents "the fundamental results of classical recursion theory ... in a style... accessible to undergraduates with minimal mathematical background". While he states that it "would make an excellent introductory text for an introductory course in for mathematics students", he suggests that an "instructor must be prepared to substantially augment the material… " when it used with computer science students.''Decidability of second order theories and automata on infinite trees''
- Michael O. Rabin
- Transactions of the American Mathematical Society, vol. 141, pp. 1–35, 1969
''Finite automata and their decision problems''
- Michael O. Rabin and Dana S. Scott
- IBM Journal of Research and Development, vol. 3, pp. 114–125, 1959
''Introduction to Automata Theory, Languages, and Computation''
- John E. Hopcroft, Jeffrey D. Ullman, and Rajeev Motwani
- Addison-Wesley, 2001,
''On certain formal properties of grammars''
Description: This article introduced what is now known as the Chomsky hierarchy, a containment hierarchy of classes of formal grammars that generate formal languages.''On computable numbers, with an application to the Entscheidungsproblem''
- Alan Turing
- Proceedings of the London Mathematical Society, Series 2, vol. 42, pp. 230–265, 1937,.
Errata appeared in vol. 43, pp. 544–546, 1938,. - ,
On the other hand, it proved the undecidability of the halting problem and Entscheidungsproblem and by doing so found the limits of possible computation.
''Rekursive Funktionen''
The first textbook on the theory of recursive functions. The book went through many editions and earned Péter the Kossuth Prize from the Hungarian government. Reviews by Raphael M. Robinson and Stephen Kleene praised the book for providing an effective elementary introduction for students.''Representation of Events in Nerve Nets and Finite Automata''
- S. C. Kleene
- U. S. Air Force Project Rand Research Memorandum RM-704, 1951
- republished in:
[Computational complexity theory]
''Arora & Barak's ''Computational Complexity'' and Goldreich's ''Computational Complexity'' (both Cambridge)''
- Sanjeev Arora and Boaz Barak, "Computational Complexity: A Modern Approach," Cambridge University Press, 2009, 579 pages, Hardcover
- Oded Goldreich, "Computational Complexity: A Conceptual Perspective, Cambridge University Press, 2008, 606 pages, Hardcover
The reviewer notes that there is "a definite attempt in to include very up-to-date material, while Goldreich focuses more on developing a contextual and historical foundation for each concept presented," and that he "applaud all… authors for their outstanding contributions."
''A machine-independent theory of the complexity of recursive functions''
Description: The Blum axioms.''Algebraic methods for interactive proof systems''
Description: This paper showed that PH is contained in IP.''The complexity of theorem proving procedures''
Description: This paper introduced the concept of NP-Completeness and proved that Boolean satisfiability problem is NP-Complete. Note that similar ideas were developed independently slightly later by Leonid Levin at "Levin, Universal Search Problems. Problemy Peredachi Informatsii 9:265–266, 1973".''Computers and Intractability: A Guide to the Theory of NP-Completeness''
Description: The main importance of this book is due to its extensive list of more than 300 NP-Complete problems. This list became a common reference and definition. Though the book was published only few years after the concept was defined such an extensive list was found.''Degree of difficulty of computing a function and a partial ordering of recursive sets''
''How good is the simplex method?''
- Victor Klee and George J. Minty
''How to construct random functions''
''IP = PSPACE''
Description: IP is a complexity class whose characterization is quite different from the usual time/space bounded computational classes. In this paper, Shamir extended the technique of the previous paper by Lund, et al., to show that PSPACE is contained in IP, and hence IP = PSPACE, so that each problem in one complexity class is solvable in the other.''Reducibility among combinatorial problems''
- R. M. Karp
- In R. E. Miller and J. W. Thatcher, editors, Complexity of Computer Computations, Plenum Press, New York, NY, 1972, pp. 85–103
''The Knowledge Complexity of Interactive Proof Systems''
Description: This paper introduced the concept of zero knowledge.''A letter from Gödel to von Neumann''
- Kurt Gödel
- A Letter from Gödel to John von Neumann, March 20, 1956
''On the computational complexity of algorithms''
Description: This paper gave computational complexity its name and seed.''Paths, trees, and flowers''
''Theory and applications of trapdoor functions''
Description: This paper creates a theoretical framework for trapdoor functions and described some of their applications, like in cryptography. Note that the concept of trapdoor functions was brought at "New directions in cryptography" six years earlier.''Computational Complexity''
- C.H. Papadimitriou
- Addison-Wesley, 1994,
''Interactive proofs and the hardness of approximating cliques''
''Probabilistic checking of proofs: a new characterization of NP''
''Proof verification and the hardness of approximation problems''
Description: These three papers established the surprising fact that certain problems in NP remain hard even when only an approximative solution is required. See PCP theorem.''The Intrinsic Computational Difficulty of Functions''
Description: First definition of the complexity class P. One of the founding papers of complexity theory.[Algorithms]
"A machine program for theorem proving"
Description: The DPLL algorithm. The basic algorithm for SAT and other NP-Complete problems."A machine-oriented logic based on the resolution principle"
"The traveling-salesman problem and minimum spanning trees"
Description: The use of an algorithm for minimum spanning tree as an approximation algorithm for the NP-Complete travelling salesman problem. Approximation algorithms became a common method for coping with NP-Complete problems."A polynomial algorithm in linear programming"
- L. G. Khachiyan
- Soviet Mathematics - Doklady, vol. 20, pp. 191–194, 1979
"Probabilistic algorithm for testing primality"
Description: The paper presented the Miller-Rabin primality test and outlined the program of randomized algorithms."Optimization by simulated annealing"
Description: This article described simulated annealing which is now a very common heuristic for NP-Complete problems.''The Art of Computer Programming''
Description: This monograph has four volumes covering popular algorithms. The algorithms are written in both English and MIX assembly language. This makes algorithms both understandable and precise. However, the use of a low-level programming language frustrates some programmers more familiar with modern structured programming languages.''Algorithms + Data Structures = Programs''
- Niklaus Wirth
- Prentice Hall, 1976,
''The Design and Analysis of Computer Algorithms''
- Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman
- Addison-Wesley, 1974,
''How to Solve It By Computer''
Description: Explains the Whys of algorithms and data-structures. Explains the Creative Process, the Line of Reasoning, the Design Factors behind innovative solutions.''Algorithms''
- Robert Sedgewick
- Addison-Wesley, 1983,
''Introduction to Algorithms''
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- 3rd Edition, MIT Press, 2009,.
[Algorithmic information theory]
"On Tables of Random Numbers"
"A formal theory of inductive inference"
- Ray Solomonoff
- Information and Control, vol. 7, pp. 1–22 and 224–254, 1964
- Online copy: ,
"Algorithmic information theory"
[Information theory]
"A mathematical theory of communication"
Description: This paper created the field of information theory."Error detecting and error correcting codes"
Description: In this paper, Hamming introduced the idea of error-correcting code. He created the Hamming code and the Hamming distance and developed methods for code optimality proofs."A method for the construction of minimum redundancy codes"
"A universal algorithm for sequential data compression"
''Elements of Information Theory''
[Formal verification]
Assigning Meaning to Programs
Description: Robert Floyd's landmark paper Assigning Meanings to Programs introduces the method of inductive assertions and describes how a program annotated with first-order assertions may be shown to satisfy a pre- and post-condition specification – the paper also introduces the concepts of loop invariant and verification condition.An Axiomatic Basis for Computer Programming
Description: Tony Hoare's paper An Axiomatic Basis for Computer Programming describes a set of inference rules for fragments of an Algol-like programming language described in terms of Hoare-triples.Guarded Commands, Nondeterminacy and Formal Derivation of Programs
Description: Edsger Dijkstra's paper Guarded Commands, Nondeterminacy and Formal Derivation of Programs proposes that, instead of formally verifying a program after it has been written, programs and their formal proofs should be developed hand-in-hand, a method known as program refinement, or sometimes "correctness-by-construction".''Proving Assertions about Parallel Programs''
- Edward A. Ashcroft
- J. Comput. Syst. Sci. 10: 110–135
''An Axiomatic Proof Technique for Parallel Programs I''
- Susan S. Owicki, David Gries
- Acta Inform. 6: 319–340
''A Discipline of Programming''
- Edsger W. Dijkstra
- 1976
''Denotational Semantics''
- Joe Stoy
- 1977
The Temporal Logic of Programs
Description: The use of temporal logic was suggested as a method for formal verification.''Characterizing correctness properties of parallel programs using fixpoints (1980)''
- E. Allen Emerson, Edmund M. Clarke
- In Proc. 7th International Colloquium on Automata Languages and Programming, pages 169–181, 1980
''Communicating Sequential Processes (1978)''
- C.A.R. Hoare
- 1978
''A Calculus of Communicating Systems''
- Robin Milner
- 1980
''Software Development: A Rigorous Approach''
- Cliff Jones
- 1980
''The Science of Programming''
- David Gries
- 1981
It shows how to construct programs that work correctly. It does this by showing how to use precondition and postcondition predicate expressions and program proving techniques to guide the way programs are created.
The examples in the book are all small-scale, and clearly academic. They emphasize basic algorithms, such as sorting and merging, and string manipulation. Subroutines are included, but object-oriented and functional programming environments are not addressed.
''Communicating Sequential Processes (1985)''
- C.A.R. Hoare
- 1985
''Linear logic (1987)''
Description: Girard's linear logic was a breakthrough in designing typing systems for sequential and concurrent computation, especially for resource conscious typing systems.''A Calculus of Mobile Processes (1989)''
- R. Milner, J. Parrow, D. Walker
- 1989
- Online version: and
''Communication and Concurrency''
- Robin Milner
- Prentice-Hall International, 1989
''a Practical Theory of Programming''
- Eric Hehner
- Springer, 1993, current edition online