Recommended Computer Science Papers
by Madeleine Thompson, originally written 2018–12–09, last updated 2019–12-14
theory
- On Computable Numbers, with an Application to the Entscheidungsproblem, by Alan Turing (1936)
- A Mathematical Theory of Communication, by Claude Shannon (1948)
- Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I, by John McCarthy (1960)
- Fundamental Concepts in Programming Languages, by Christopher Strachey (1967)
- Reflections on Trusting Trust, by Ken Thompson (1984)
- A Computer Scientist's View of Life, the Universe, and Everything, by Jürgen Schmidhuber (1997)
distributed systems
- Time, Clocks, and the Ordering of Events in a Distributed System, by Leslie Lamport (1978)
- The Part-Time Parliament, by Leslie Lamport (1998)
- MapReduce: Simplified Data Processing on Large Clusters, by Jeffrey Dean and and Sanjay Ghemawat (2004)
- The Chubby lock service for loosely-coupled distributed systems, by Mike Burrows (2006)
- Bigtable: A Distributed Storage System for Structured Data, by Fay Chang et al (2006)
- Dynamo: Amazon's Highly Available Key-value Store, by Giuseppe DeCandia et al (2007)
- Spanner: Google's Globally Distributed Database, by James C. Corbett et al (2013)
- The Design and Implementation of Modern Column-Oriented Database Systems, by Daniel Abadi et al (2013)
- Life Beyond Distributed Transactions: An Apostate's Opinion, by Pat Helland (2016)
other
- How Complex Systems Fail, by Richard Cook (2000)
- A Layered Grammar of Graphics, by Hadley Wickham (2010)