From Wikipedia, the free encyclopedia.
This is a list of important publications in computer science, organized by field.
There are a number of reason why a particular publication might be regarded as important:
- Topic creator - A publication that created a new topic
- Break through - A publication that changed scientific knowledge significantly
- Introduction - A publication that is a good introduction or survey of a topic
- Impact - A publication which had a major impact on the world or on the research
- Latest and greatest - The current most advanced result in a topic
Computability
On computable numbers, with an application to the Entscheidungsproblem
- Alan Turing
- Proceedings of the London Mathematical Society, Series 2, 42 (1936), pp 230-265. Errata appeared in Series 2, 43 (1937), pp 544-546.
- Online version
Computational complexity theory
On the computational complexity of algorithms
Description: This paper gave computational complexity its name and seed.
Importance: Topic creator, Break through, Impact
The complexity of theorem proving procedures
Description: This paper introduced the concept of NP-Completeness and proved that SAT is NP-Complete.
Importance: Topic creator, Break through, Impact
Reducibility among combinatorial problems
Description: This paper showed that 21 different papers are NP-Complete and showed the importance of the concept.
Importance: Impact
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. It is important to note that though the book was published only few years after the concept was defined such an extensive list was found.
Importance: Introduction, Impact, Latest and greatest
Importance: Topic creator, Break through
Importance: Topic creator, Break through, Latest and greatest
Importance: Break through, Impact
Description: A very common heuristic for NP-Complete problems.
Importance: Impact
Importance: Topic creator, Break through, Introduction, Impact
Importance: Topic creator, Break through, Introduction, Impact
Importance: Impact, Break trough
Importance: Impact, Break trough
Importance: Impact, Introduction
Importance: Topic creator, Break through, Impact
Importance: Topic creator, Introduction, Impact
Importance: Topic creator, Break through, Introduction, Impact, Latest and greatest (A great paper from every perspective...)
Importance: Break through, Impact
Importance: Topic creator, Break through
Importance: Topic creator, Break through, Impact
Importance: Topic creator, Break through, Impact
Importance: Impact
Importance: Introduction, Impact
Importance: Topic creator, Impact
Importance: Impact
Importance: Impact
Importance: Topic creator, Impact
Importance: Impact, Latest and greatestThe Knowledge Complexity of Interactive Proof Systems
Description: This paper introduced the concept of zero knowledge.How to Construct Random Functions
Description: This paper showed that the existence of one way functions leads to computational randomness.
Computational Complexity
Description: This book provides a very good introduction to Computational Complexity
Importance: IntroductionAlgorithms
A machine program for theorem proving
Description: The DLL algorithm. The basic algorithm for SAT and other NP-Complete problems.Optimization by simulated annealing
The Art of Computer Programming
Description: This set of textbooks used to be very popular algorithms books. The algorithms were written in the MIX assembly language. Due to that, the algorithms were very precise but not very readable...
Importance: ImpactIntroduction to algorithms
Description: As its name indicates this text book is a very good introduction to algorithms. This book became so popular that it is almost de facto standard for basic algorithms teaching. The only problem with this 1028 pages book is that it might cause severe pain when falling on your foot.
Importance: Introduction, ImpactCommunication theory
A mathematical theory of communication
Description: This paper created communication theory and information theory.Information theory
A mathematical theory of communication
Description: This paper created communication theory and information theory.A Method for the Construction of Minimum Redundancy Codes
Description: The Huffman coding.
A Universal Algorithm for Sequential Data Compression
Description: The LZ77 compression algorithm. Elements of Information Theory
Description: A good and popular introduction to information theory.Databases
A relational model for large shared data bank
Description: This paper introduced the relational model for databases.
This model became the number one model.The Entity Relationship Model - Towards a Unified View of Data
Description: This paper introduced the ERD method of database design.
Importance: Break through, ImpactMining association rules between sets of items in large databases
Description: Association rules, a very common method for data mining.Cryptography
New directions in cryptography
Description: This paper suggested public key cryptography and invented Diffie-Hellman key exchange.A Method for Obtaining Digital Signatures and Public Key Cryptosystems
Description: The RSA encryption method. The first public key method.How to Share a Secret
Description: A safe method for sharing a secret.Machine learning
Language identification in the limit
Description: This paper created Algorithmic learning theory.On the uniform convergence of relative frequencies of events to their probabilities
Description: Statistical learning theory, statistical uniform convergence and the VC dimension.
Importance: Break through, ImpactA theory of the learnable
Description: The Probably approximately correct learning (PAC learning) framework.Compilers
YACC: Yet another compiler-compiler
Description: Yacc is a tool that made compiler writing much easier.Compilers: Principles, Techniques and Tools
Description: This book became a classic in compiler writing. It is also known as the Dragon book, after the (red) dragon that appears on its cover.Software engineering
GOTO Considered Harmful
Description: Don't use goto - the beginning of structured programming.No Silver Bullet :Essence and accidents of software engineering
Description: We will keep having problems with software...The Cathedral and the Bazaar
Description: Open source methodology.Design Patterns: Elements of Reusable ObjectOriented Software
Description: This book was the first to deifne and list design patternss in computer scienceComputer networks
Ethernet: Distributed packet switching for local computer networks
Description: The Ethernet protocol.

