The hundred

The seed list, in its own numbering.

100 papers, in the order to read them. A paper that needs another one first is listed under it.

  1. 1
    On Computable Numbers, with an Application to the Entscheidungsproblem

    the universal machine and the undecidability of the halting problem

    EnglishTiếng Việt中文日本語

  2. 2
    A Mathematical Theory of Communication

    entropy, channel capacity, and the separation of source and channel coding

    EnglishTiếng Việt

  3. 3
    Error Detecting and Error Correcting Codes

    minimum distance, and codes that repair what they detect

    Read first: A Mathematical Theory of Communication

    EnglishTiếng Việt中文

  4. 4
    Finite Automata and Their Decision Problems

    nondeterministic automata, and the subset construction that removes it

    EnglishTiếng Việt中文日本語

  5. 5
    Relationships Between Nondeterministic and Deterministic Tape Complexities

    Savitch's theorem: NSPACE(f) is in DSPACE(f squared)

    EnglishTiếng Việt中文日本語

  6. 6
    The Complexity of Theorem-Proving Procedures

    NP-completeness, and SAT as the first complete problem

    EnglishTiếng Việt

  7. 7
    Reducibility Among Combinatorial Problems

    twenty-one problems reduced to one another, making NP-completeness a tool

    Read first: The Complexity of Theorem-Proving Procedures

    EnglishTiếng Việt中文日本語

  8. 8
    The Knowledge Complexity of Interactive Proof-Systems

    interactive proofs, and proving a statement while revealing nothing else

    EnglishTiếng Việt中文日本語

  9. 9
    IP = PSPACE

    interaction with randomness buys exactly polynomial space

    Read first: The Knowledge Complexity of Interactive Proof-Systems

    English

  10. 10
    Natural Proofs

    why the circuit lower-bound techniques that existed could not settle P vs NP

    EnglishTiếng Việt中文日本語

  11. 11
    Maximal Flow Through a Network

    max-flow min-cut

    EnglishTiếng Việt中文日本語

  12. 12
    A Note on Two Problems in Connexion with Graphs

    single-source shortest paths, and a minimum spanning tree, in three pages

    EnglishTiếng Việt中文日本語

  13. 13
    Quicksort

    partition in place, recurse on the parts

    EnglishTiếng Việt中文日本語

  14. 14
    Algorithm 97: Shortest Path

    all-pairs shortest paths as a triple loop

    EnglishTiếng Việt中文日本語

  15. 15
    An Algorithm for the Machine Calculation of Complex Fourier Series

    the discrete Fourier transform in n log n

    EnglishTiếng Việt中文日本語

  16. 16
    Space/Time Trade-offs in Hash Coding with Allowable Errors

    a set membership test that is wrong only in one direction

    EnglishTiếng Việt中文日本語

  17. 17
    Depth-First Search and Linear Graph Algorithms

    strongly connected components in one pass

    EnglishTiếng Việt中文日本語

  18. 18
    Efficient String Matching: An Aid to Bibliographic Search

    many patterns at once, with failure links over a trie

    EnglishTiếng Việt中文日本語

  19. 19
    Fast Pattern Matching in Strings

    never move the text pointer backwards

    EnglishTiếng Việt日本語

  20. 20
    The Anatomy of a Large-Scale Hypertextual Web Search Engine

    rank a page by the ranks of the pages that link to it

    EnglishTiếng Việt

  21. 21
    Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I

    programs as data, and eval written in itself

    EnglishTiếng Việt中文日本語

  22. 22
    An Axiomatic Basis for Computer Programming

    preconditions, postconditions, and a proof rule per statement

    EnglishTiếng Việt中文日本語

  23. 23
    Scheme: An Interpreter for Extended Lambda Calculus

    lexical scope, first-class procedures, and tail calls

    Read first: Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I

    EnglishTiếng Việt中文日本語

  24. 24
    A Theory of Type Polymorphism in Programming

    principal types, inferred without annotation

    EnglishTiếng Việt

  25. 25
    Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs

    the assignment statement as the bottleneck, and programs combined algebraically

    EnglishTiếng Việt中文日本語

  26. 26
    Efficient Implementation of the Smalltalk-80 System

    dynamic translation and inline caches, the ancestor of every JIT

    EnglishTiếng Việt中文日本語

  27. 27
    Efficiently Computing Static Single Assignment Form and the Control Dependence Graph

    dominance frontiers, and one definition per name

    EnglishTiếng Việt日本語

  28. 28
    Constant Propagation with Conditional Branches

    constants and unreachable branches found in one lattice walk

    Read first: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph

    EnglishTiếng Việt中文日本語

  29. 29
    LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation

    a typed SSA intermediate representation as a durable artefact

    Read first: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph

    EnglishTiếng Việt

  30. 30
    Trace-based Just-in-Time Type Specialization for Dynamic Languages

    compile hot loop traces, not methods

    Read first: Efficient Implementation of the Smalltalk-80 System

    EnglishTiếng Việt

  31. 31
    The Structure of the "THE"-Multiprogramming System

    layers, each provable against the one below it

    EnglishTiếng Việt中文日本語

  32. 32
    The Working Set Model for Program Behavior

    locality made measurable, and thrashing explained

    EnglishTiếng Việt中文日本語

  33. 33
    The UNIX Time-Sharing System

    everything is a file, and the system is small enough to describe

    EnglishTiếng Việt

  34. 34
    Time, Clocks, and the Ordering of Events in a Distributed System

    happens-before, logical clocks, and state machine replication

    EnglishTiếng Việt中文日本語

  35. 35
    End-To-End Arguments in System Design

    a function belongs at the endpoints unless the network can finish the job

    EnglishTiếng Việt中文日本語

  36. 36
    Implementing Remote Procedure Calls

    a call that crosses a machine, and everything that makes it not a call

    EnglishTiếng Việt中文日本語

  37. 37
    The Part-Time Parliament

    consensus that survives any minority failing, told as an archaeology paper

    Read first: Time, Clocks, and the Ordering of Events in a Distributed System

    EnglishTiếng Việt中文日本語

  38. 38
    Xen and the Art of Virtualization

    paravirtualization, trading a modified guest for near-native speed

    EnglishTiếng Việt

  39. 39
    The Google File System

    a single master, huge chunks, and failure as the normal case

    EnglishTiếng Việt

  40. 40
    MapReduce: Simplified Data Processing on Large Clusters

    two functions, and the framework handles the thousand machines

    Read first: The Google File System

    EnglishTiếng Việt

  41. 41
    Dynamo: Amazon's Highly Available Key-value Store

    always writable, reconciled later, with consistent hashing and vector clocks

    EnglishTiếng Việt

  42. 42
    In Search of an Understandable Consensus Algorithm

    consensus decomposed into leader election, log replication and safety

    Read first: The Part-Time Parliament

    EnglishTiếng Việt

  43. 43
    Large-scale cluster management at Google with Borg

    one scheduler for batch and serving, and the ancestor of Kubernetes

    EnglishTiếng Việt

  44. 44
    A Protocol for Packet Network Intercommunication

    gateways between heterogeneous networks, and a common datagram

    EnglishTiếng Việt

  45. 45
    Ethernet: Distributed Packet Switching for Local Computer Networks

    carrier sense, collision detection, and exponential backoff on a shared wire

    EnglishTiếng Việt

  46. 46
    Congestion Control in IP/TCP Internetworks

    small packets coalesced, and congestion collapse named

    EnglishTiếng Việt

  47. 47
    Congestion Avoidance and Control

    slow start, congestion avoidance, and the conservation of packets

    Read first: Congestion Control in IP/TCP Internetworks

    EnglishTiếng Việt

  48. 48
    Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks

    why additive increase and multiplicative decrease converges to fairness

    Read first: Congestion Avoidance and Control

    EnglishTiếng Việt

  49. 49
    Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

    consistent hashing on a ring, with a finger table for log n hops

    EnglishTiếng Việt

  50. 50
    OpenFlow: Enabling Innovation in Campus Networks

    separate the control plane from the switch

    EnglishTiếng Việt

  51. 51
    P4: Programming Protocol-Independent Packet Processors

    the data plane described by a program rather than fixed in silicon

    Read first: OpenFlow: Enabling Innovation in Campus Networks

    EnglishTiếng Việt

  52. 52
    A Relational Model of Data for Large Shared Data Banks

    data as relations, independent of how it is stored

    EnglishTiếng Việt

  53. 53
    Organization and Maintenance of Large Ordered Indices

    a balanced tree with a page-sized node

    EnglishTiếng Việt

  54. 54
    System R: Relational Approach to Database Management

    the first relational system that worked, and SQL with it

    Read first: A Relational Model of Data for Large Shared Data Banks

    EnglishTiếng Việt

  55. 55
    Access Path Selection in a Relational Database Management System

    cost-based optimisation, and dynamic programming over join orders

    Read first: System R: Relational Approach to Database Management

    EnglishTiếng Việt

  56. 56
    The Gamma Database Machine Project

    shared-nothing parallelism, and hash partitioning that scales linearly

    EnglishTiếng Việt

  57. 57
    ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging

    analysis, redo, undo, and repeating history before undoing it

    EnglishTiếng Việt

  58. 58
    Volcano - An Extensible and Parallel Query Evaluation System

    the iterator model, and parallelism as one more operator

    EnglishTiếng Việt

  59. 59
    C-Store: A Column-oriented DBMS

    store columns, compress them, and read only what the query touches

    EnglishTiếng Việt

  60. 60
    MonetDB/X100: Hyper-Pipelining Query Execution

    vectors of tuples per call, so the CPU pipeline stays full

    Read first: Volcano - An Extensible and Parallel Query Evaluation System

    EnglishTiếng Việt

  61. 61
    Bigtable: A Distributed Storage System for Structured Data

    a sparse, sorted, multidimensional map over a distributed file system

    Read first: The Google File System

    EnglishTiếng Việt

  62. 62
    Spanner: Google's Globally-Distributed Database

    TrueTime, and externally consistent transactions across continents

    Read first: Bigtable: A Distributed Storage System for Structured Data, The Part-Time Parliament

    EnglishTiếng Việt

  63. 63
    The Snowflake Elastic Data Warehouse

    storage and compute separated, and elasticity as a product

    Read first: C-Store: A Column-oriented DBMS

    EnglishTiếng Việt

  64. 64
    Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities

    the serial fraction bounds every speedup

    EnglishTiếng Việt中文日本語

  65. 65
    An Efficient Algorithm for Exploiting Multiple Arithmetic Units

    register renaming and the common data bus, i.e. out-of-order execution

    EnglishTiếng Việt

  66. 66
    Design of Ion-Implanted MOSFET's with Very Small Physical Dimensions

    shrink every dimension and the power density stays put, until it did not

    EnglishTiếng Việt

  67. 67
    RISC I: A Reduced Instruction Set VLSI Computer

    fewer instructions, executed faster, with the compiler taking the slack

    EnglishTiếng Việt

  68. 68
    Improving Direct-Mapped Cache Performance by the Addition of a Small Fully-Associative Cache and Prefetch Buffers

    a tiny victim cache removes most conflict misses

    EnglishTiếng Việt

  69. 69
    Two-Level Adaptive Training Branch Prediction

    a history register indexing a pattern table

    EnglishTiếng Việt

  70. 70
    In-Datacenter Performance Analysis of a Tensor Processing Unit

    a systolic matrix unit, and the roofline that explains it

    EnglishTiếng Việt

  71. 71
    The Protection of Information in Computer Systems

    eight design principles, least privilege among them

    EnglishTiếng Việt

  72. 72
    New Directions in Cryptography

    a shared secret agreed in public, and the idea of a public key

    EnglishTiếng Việt

  73. 73
    Using Encryption for Authentication in Large Networks of Computers

    nonces, a trusted third party, and the protocol that taught the field to look for flaws

    EnglishTiếng Việt

  74. 74
    A Method for Obtaining Digital Signatures and Public-Key Cryptosystems

    trapdoor one-way functions from the difficulty of factoring

    Read first: New Directions in Cryptography

    English

  75. 75
    Probabilistic Encryption

    semantic security, and why deterministic encryption cannot have it

    Read first: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems

    EnglishTiếng Việt

  76. 76
    Kerberos: An Authentication Service for Open Network Systems

    tickets from a key distribution centre, deployed for real

    Read first: Using Encryption for Authentication in Large Networks of Computers

    EnglishTiếng Việt

  77. 77
    Practical Byzantine Fault Tolerance

    agreement with a third of the replicas lying, at a usable cost

    Read first: The Part-Time Parliament

    EnglishTiếng Việt

  78. 78
    Bitcoin: A Peer-to-Peer Electronic Cash System

    proof of work as Sybil resistance, and the longest chain as the truth

    EnglishTiếng Việt

  79. 79
    Computing Machinery and Intelligence

    the imitation game, and nine objections answered

    EnglishTiếng Việt

  80. 80
    The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain

    a learning rule for a linear threshold unit

  81. 81
    Learning Representations by Back-propagating Errors

    the chain rule applied to a layered network

    Read first: The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain

    EnglishTiếng Việt

  82. 82
    Support-Vector Networks

    the maximum margin hyperplane, and the kernel trick

    EnglishTiếng Việt

  83. 83
    A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting

    many weak learners, reweighted, add up to a strong one

    EnglishTiếng Việt

  84. 84
    Gradient-Based Learning Applied to Document Recognition

    convolution, weight sharing and pooling, trained end to end

    Read first: Learning Representations by Back-propagating Errors

    EnglishTiếng Việt

  85. 85
    ImageNet Classification with Deep Convolutional Neural Networks

    depth, ReLU, dropout and two GPUs

    Read first: Gradient-Based Learning Applied to Document Recognition

    EnglishTiếng Việt

  86. 86
    Generative Adversarial Nets

    a generator and a discriminator playing a minimax game

    EnglishTiếng Việt中文日本語

  87. 87
    Sequence to Sequence Learning with Neural Networks

    an encoder LSTM into a decoder LSTM, with no alignment model

    EnglishTiếng Việt

  88. 88
    Deep Residual Learning for Image Recognition

    learn the residual, and a hundred layers become trainable

    Read first: ImageNet Classification with Deep Convolutional Neural Networks

    EnglishTiếng Việt

  89. 89
    Mastering the game of Go with deep neural networks and tree search

    policy and value networks guiding Monte Carlo tree search

    English

  90. 90
    Attention Is All You Need

    self-attention alone, with no recurrence and no convolution

    Read first: Sequence to Sequence Learning with Neural Networks

    English

  91. 91
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    masked language modelling, then fine-tuning

    Read first: Attention Is All You Need

    English

  92. 92
    Language Models are Few-Shot Learners

    scale, and a task specified in the prompt rather than the weights

    Read first: Attention Is All You Need

    English

  93. 93
    Sketchpad: A Man-Machine Graphical Communication System

    drawing with constraints, and the first interactive graphics system

    EnglishTiếng Việt

  94. 94
    A Research Center for Augmenting Human Intellect

    the mouse, hypertext, and screen editing, shown working

    EnglishTiếng Việt

  95. 95
    Illumination for Computer Generated Pictures

    interpolate the normal, not the intensity, and add a specular term

    EnglishTiếng Việt

  96. 96
    Direct Manipulation: A Step Beyond Programming Languages

    continuous representation, physical action, and reversible operations

    Read first: A Research Center for Augmenting Human Intellect

    EnglishTiếng Việt中文日本語

  97. 97
    Managing the Development of Large Software Systems

    the diagram everyone quotes, and the page after it saying it does not work

    EnglishTiếng Việt

  98. 98
    On the Criteria To Be Used in Decomposing Systems into Modules

    modules hide decisions, not steps

    EnglishTiếng Việt

  99. 99
    A Complexity Measure

    count the independent paths through the control flow graph

    EnglishTiếng Việt

  100. 100
    No Silver Bullet - Essence and Accidents of Software Engineering

    essential complexity is irreducible, so no single advance gives an order of magnitude

    EnglishTiếng Việt