List of important publications in computer science
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
This is a list of important publications in 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 computer science.
- 1 Artificial intelligence
- 1.1 Computing Machinery and Intelligence
- 1.2 A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence
- 1.3 Fuzzy sets
- 1.4 Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference
- 1.5 Artificial Intelligence: A Modern Approach
- 1.6 Machine learning
- 1.6.1 An Inductive Inference Machine
- 1.6.2 Language identification in the limit
- 1.6.3 On the uniform convergence of relative frequencies of events to their probabilities
- 1.6.4 A theory of the learnable
- 1.6.5 Learning representations by back-propagating errors
- 1.6.6 Induction of Decision Trees
- 1.6.7 Learning Quickly When Irrelevant Attributes Abound: A New Linear-threshold Algorithm
- 1.6.8 Learning to predict by the method of Temporal difference
- 1.6.9 Learnability and the Vapnik–Chervonenkis dimension
- 1.6.10 Cryptographic limitations on learning boolean formulae and finite automata
- 1.6.11 The strength of weak learnability
- 1.6.12 A training algorithm for optimum margin classifiers
- 1.6.13 A fast learning algorithm for deep belief nets
- 1.6.14 Knowledge-based analysis of microarray gene expression data by using support vector machines
- 2 Collaborative networks
- 3 Compilers
- 3.1 On the translation of languages from left to right
- 3.2 Semantics of Context-Free Languages.
- 3.3 A program data flow analysis procedure
- 3.4 A Unified Approach to Global Program Optimization
- 3.5 YACC: Yet another compiler-compiler
- 3.6 gprof: A Call Graph Execution Profiler
- 3.7 Compilers: Principles, Techniques and Tools
- 4 Computer architecture
- 4.1 Colossus computer
- 4.2 First Draft of a Report on the EDVAC
- 4.3 Architecture of the IBM System/360
- 4.4 The case for the reduced instruction set computer
- 4.5 Comments on "the Case for the Reduced Instruction Set Computer"
- 4.6 The CRAY-1 Computer System
- 4.7 Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities
- 4.8 A Case for Redundant Arrays of Inexpensive Disks (RAID)
- 4.9 The case for a single-chip multiprocessor
- 5 Computer graphics
- 6 Computer vision
- 6.1 The Phase Correlation Image Alignment Method
- 6.2 Determining Optical Flow
- 6.3 An Iterative Image Registration Technique with an Application to Stereo Vision
- 6.4 The Laplacian Pyramid as a compact image code
- 6.5 Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images
- 6.6 Snakes: Active contour models
- 6.7 Condensation – conditional density propagation for visual tracking
- 6.8 Object recognition from local scale-invariant features
- 7 Concurrent, parallel, and distributed computing
- 8 Databases
- 8.1 A relational model for large shared data banks
- 8.2 Binary B-Trees for Virtual Memory
- 8.3 Relational Completeness of Data Base Sublanguages
- 8.4 The Entity Relationship Model – Towards a Unified View of Data
- 8.5 SEQUEL: A structured English query language
- 8.6 The notions of consistency and predicate locks in a database system
- 8.7 Federated database systems for managing distributed, heterogeneous, and autonomous databases
- 8.8 Mining association rules between sets of items in large databases
- 9 History of computation
- 10 Information retrieval
- 11 Networking
- 12 Operating systems
- 12.1 An experimental timesharing system.
- 12.2 The Working Set Model for Program Behavior
- 12.3 Virtual Memory, Processes, and Sharing in MULTICS
- 12.4 The nucleus of a multiprogramming system
- 12.5 Operating System Principles
- 12.6 A note on the confinement problem
- 12.7 The UNIX Time-Sharing System
- 12.8 Weighted voting for replicated data
- 12.9 Experiences with Processes and Monitors in Mesa
- 12.10 Scheduling Techniques for Concurrent Systems
- 12.11 A Fast File System for UNIX
- 12.12 The Design of the UNIX Operating System
- 12.13 The Design and Implementation of a Log-Structured File System
- 12.14 Microkernel operating system architecture and Mach
- 12.15 An Implementation of a Log-Structured File System for UNIX
- 12.16 Soft Updates: A Solution to the Metadata Update problem in File Systems
- 13 Programming languages
- 13.1 The FORTRAN Automatic Coding System
- 13.2 Recursive functions of symbolic expressions and their computation by machine, part I
- 13.3 ALGOL 60
- 13.4 The next 700 programming languages
- 13.5 Fundamental Concepts in Programming Languages
- 13.6 Lambda Papers
- 13.7 Structure and Interpretation of Computer Programs
- 13.8 Comprehending Monads
- 13.9 Towards a Theory of Type Structure
- 13.10 An axiomatic basis for computer programming
- 14 Scientific computing
- 15 Software engineering
- 15.1 Software engineering: Report of a conference sponsored by the NATO Science Committee
- 15.2 A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System
- 15.3 Go To Statement Considered Harmful
- 15.4 On the criteria to be used in decomposing systems into modules
- 15.5 Hierarchical Program Structures
- 15.6 A technique for software module specification with examples
- 15.7 Structured Design
- 15.8 The Emperor's Old Clothes
- 15.9 The Mythical Man-Month: Essays on Software Engineering
- 15.10 No Silver Bullet: Essence and Accidents of Software Engineering
- 15.11 The Cathedral and the Bazaar
- 15.12 Design Patterns: Elements of Reusable Object Oriented Software
- 15.13 Statecharts: A Visual Formalism For Complex Systems
- 16 Security
- 17 Theoretical computer science
- 18 See also
- 19 References
- 20 External links
Computing Machinery and IntelligenceEdit
Description: This paper discusses the various arguments on why a machine can not be intelligent and asserts that none of those arguments are convincing. The paper also suggested the Turing test, which it calls "The Imitation Game" as according to Turing it is pointless to ask whether or not a machine can think intelligently, and checking if it can act intelligently is sufficient.
A Proposal for the Dartmouth Summer Research Project on Artificial IntelligenceEdit
Description: This summer research proposal inaugurated and defined the field. It contains the first use of the term artificial intelligence and this succinct description of the philosophical foundation of the field: "every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it." (See philosophy of AI) The proposal invited researchers to the Dartmouth conference, which is widely considered the "birth of AI". (See history of AI.)
- Lotfi Zadeh
- Information and Control, Vol. 8, pp. 338–353. (1965).
Description: The seminal paper published in 1965 provides details on the mathematics of fuzzy set theory.
Probabilistic Reasoning in Intelligent Systems: Networks of Plausible InferenceEdit
Description: This book introduced Bayesian methods to AI.
Artificial Intelligence: A Modern ApproachEdit
- Stuart J. Russell and Peter Norvig
- Prentice Hall, Englewood Cliffs, New Jersey, 1995, ISBN 0-13-080302-2
- Textbook's website
Description: The standard textbook in Artificial Intelligence. The book web site lists over 1100 colleges.
An Inductive Inference MachineEdit
- Ray Solomonoff
- IRE Convention Record, Section on Information Theory, Part 2, pp. 56–62, 1957
- (A longer version of this, a privately circulated report, 1956, is online).
Description: The first paper written on machine learning. Emphasized the importance of training sequences, and the use of parts of previous solutions to problems in constructing trial solutions to new problems.
Language identification in the limitEdit
Description: This paper created Algorithmic learning theory.
On the uniform convergence of relative frequencies of events to their probabilitiesEdit
A theory of the learnableEdit
Description: The Probably approximately correct learning (PAC learning) framework.
Learning representations by back-propagating errorsEdit
Seppo Linnainmaa's reverse mode of automatic differentiation (first applied to neural networks by Paul Werbos) is used in experiments by David Rumelhart, Geoff Hinton and Ronald J. Williams to learn internal representations.
Induction of Decision TreesEdit
- J.R. Quinlan
- Machine Learning, 1. 81—106, 1986.
Description: Decision Trees are a common learning algorithm and a decision representation tool. Development of decision trees was done by many researchers in many areas, even before this paper. Though this paper is one of the most influential in the field.
Learning Quickly When Irrelevant Attributes Abound: A New Linear-threshold AlgorithmEdit
Description: One of the papers that started the field of on-line learning. In this learning setting, a learner receives a sequence of examples, making predictions after each one, and receiving feedback after each prediction. Research in this area is remarkable because (1) the algorithms and proofs tend to be very simple and beautiful, and (2) the model makes no statistical assumptions about the data. In other words, the data need not be random (as in nearly all other learning models), but can be chosen arbitrarily by "nature" or even an adversary. Specifically, this paper introduced the winnow algorithm.
Learning to predict by the method of Temporal differenceEdit
Learnability and the Vapnik–Chervonenkis dimensionEdit
Cryptographic limitations on learning boolean formulae and finite automata Edit
- M. Kearns
- L. G. Valiant
- In Proceedings of the 21st Annual ACM Symposium on Theory of Computing, pages 433–444, New York. ACM.
- Online version(HTML)
Description: Proving negative results for PAC learning.
The strength of weak learnabilityEdit
A training algorithm for optimum margin classifiersEdit
- Bernhard E. Boser
- Isabelle M. Guyon
- Vladimir N. Vapnik
- Proceedings of the Fifth Annual Workshop on Computational Learning Theory 5 144–152, Pittsburgh (1992).
- Online version(HTML)
A fast learning algorithm for deep belief netsEdit
Knowledge-based analysis of microarray gene expression data by using support vector machinesEdit
- MP Brown
- WN Grundy
- D Lin
- Nello Cristianini
- CW Sugnet
- TS Furey
- M Ares Jr,
- David Haussler
- PNAS, 2000 January 4;97(1):262–7 <http://www.pnas.org/cgi/content/abstract/97/1/262>
On the translation of languages from left to rightEdit
- Knuth, D. E. (July 1965). "On the translation of languages from left to right" (PDF). Information and Control. 8 (6): 607–639. doi:10.1016/S0019-9958(65)90426-2. Retrieved 29 May 2011.
Description: LR parser, which does bottom up parsing for deterministic context-free languages. Later derived parsers, such as the LALR parser, have been and continue to be standard practice, such as in Yacc and descendents.
Semantics of Context-Free Languages.Edit
- Donald Knuth
- Math. Systems Theory 2:2 (1968), 127–145.
A program data flow analysis procedureEdit
Description: From the abstract: "The global data relationships in a program can be exposed and codified by the static analysis methods described in this paper. A procedure is given which determines all the definitions which can possibly reach each node of the control flow graph of the program and all the definitions that are live on each edge of the graph."
A Unified Approach to Global Program OptimizationEdit
- Gary Kildall
- Proceedings of ACM SIGACT-SIGPLAN 1973 Symposium on Principles of Programming Languages.
Description: Formalized the concept of data-flow analysis as fixpoint computation over lattices, and showed that most static analyses used for program optimization can be uniformly expressed within this framework.
YACC: Yet another compiler-compilerEdit
gprof: A Call Graph Execution ProfilerEdit
- Susan L. Graham, Peter B. Kessler, Marshall Kirk McKusick
- Proceedings of the ACM SIGPLAN 1982 Symposium on Compiler Construction, SIGPLAN Notices 17, 6, Boston, MA. June 1982.
- Online copy; pdf
Compilers: Principles, Techniques and Tools Edit
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.
- T. H. Flowers
- Annals of the History of Computing, Vol. 5 (No. 3), 1983, pp. 239–252.
- The Design of Colossus
Description: The Colossus machines were early computing devices used by British codebreakers to break German messages encrypted with the Lorenz Cipher during World War II. Colossus was an early binary electronic digital computer. The design of Colossus was later described in the referenced paper.
Description: It contains the first published description of the logical design of a computer using the stored-program concept, which has come to be known as the von Neumann architecture.
Architecture of the IBM System/360Edit
- Gene Amdahl, Fred Brooks, G. A. Blaauw
- IBM Journal of Research and Development, 1964.
- Architecture of the IBM System/360
Description: The IBM System/360 (S/360) is a mainframe computer system family announced by IBM on April 7, 1964. It was the first family of computers making a clear distinction between architecture and implementation.
The case for the reduced instruction set computerEdit
- DA Patterson, DR Ditzel
- Computer ArchitectureNews, vol. 8, no. 6, October 1980, pp 25–33.
- Online version(PDF)
Comments on "the Case for the Reduced Instruction Set Computer"Edit
The CRAY-1 Computer SystemEdit
- DW Clark, WD Strecker
- Communications of the ACM, January 1978, volume 21, number 1, pages 63–72.
- Online version(PDF)
Description: The Cray-1 was a supercomputer designed by a team including Seymour Cray for Cray Research. The first Cray-1 system was installed at Los Alamos National Laboratory in 1976, and it went on to become one of the best known and most successful supercomputers in history.
Validity of the Single Processor Approach to Achieving Large Scale Computing CapabilitiesEdit
Description: The Amdahl's Law.
A Case for Redundant Arrays of Inexpensive Disks (RAID)Edit
- David A. Patterson, Garth Gibson, Randy H. Katz
- In International Conference on Management of Data, pages 109—116, 1988.
- Online version(PDF)
Description: This paper discusses the concept of RAID disks, outlines the different levels of RAID, and the benefits of each level. It is a good paper for discussing issues of reliability and fault tolerance of computer systems, and the cost of providing such fault-tolerance.
The case for a single-chip multiprocessorEdit
- Kunle Olukotun, Basem Nayfeh, Lance Hammond, Ken Wilson, Kunyung Chang
- In SIGOPS Oper. Syst. Rev. 30, pages 2–11, 1996.
- Online version(PDF)
Description: This paper argues that the approach taken to improving the performance of processors by adding multiple instruction issue and out-of-order execution cannot continue to provide speedups indefinitely. It lays out the case for making single chip processors that contain multiple "cores". With the mainstream introduction of multicore processors by Intel in 2005, and their subsequent domination of the market, this paper was shown to be prescient.
The Rendering EquationEdit
- J. Kajiya
- SIGGRAPH: ACM Special Interest Group on Computer Graphics and Interactive Techniques pages 143—150
Elastically deformable modelsEdit
- Demetri Terzopoulos, John Platt, Alan Barr, Kurt Fleischer
- Computer Graphics, 21(4), 1987, 205–214, Proc. ACM SIGGRAPH'87 Conference, Anaheim, CA, July 1987.
- Online version(PDF)
Description: The Academy of Motion Picture Arts and Sciences cited this paper as a "milestone in computer graphics".
Sketchpad, a Man-Machine Graphical Communication SystemEdit
Description: One of the founding works on computer graphics.
The Phase Correlation Image Alignment Method Edit
- C.D. Kuglin and D.C. Hines
- IEEE 1975 Conference on Cybernetics and Society, 1975, New York, pp. 163–165, September
Description: A correlation method based upon the inverse Fourier transform
Determining Optical FlowEdit
- Berthold K.P. Horn and B.G. Schunck
- Artificial Intelligence, Volume 17, 185–203, 1981
- OA article here: doi:10.1016/0004-3702(81)90024-2
Description: A method for estimating the image motion of world points between 2 frames of a video sequence.
An Iterative Image Registration Technique with an Application to Stereo VisionEdit
- Lucas, B.D. and Kanade, T.
- Proceedings of the 7th International Joint Conference on Artificial Intelligence, 674–679, Vancouver, Canada, 1981
- Online version
Description: This paper provides efficient technique for image registration
The Laplacian Pyramid as a compact image codeEdit
- Peter J. Burt and Edward H. Adelson
- IEEE Transactions on Communications, volume = "COM-31,4", pp. 532–540, 1983.
- Online version
Description: A technique for image encoding using local operators of many scales.
Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of imagesEdit
Description: introduced 1) MRFs for image analysis 2) the Gibbs sampling which revolutionized computational Bayesian statistics and thus had paramount impact in many other fields in addition to Computer Vision.
Snakes: Active contour modelsEdit
Description: An interactive variational technique for image segmentation and visual tracking.
Condensation – conditional density propagation for visual trackingEdit
Description: A technique for visual tracking
Object recognition from local scale-invariant features Edit
Description: A technique (scale-invariant feature transform) for robust feature description
Concurrent, parallel, and distributed computingEdit
Description: This paper introduced the relational model for databases. This model became the number one model.
Binary B-Trees for Virtual MemoryEdit
- Rudolf Bayer
- ACM-SIGFIDET Workshop 1971, San Diego, California, Session 5B, p. 219–235.
Relational Completeness of Data Base SublanguagesEdit
- E. F. Codd
- In: R. Rustin (ed.): Database Systems: 65-98, Prentice Hall and IBM Research Report RJ 987, San Jose, California : (1972)
- Online version (PDF)
Description: Completeness of Data Base Sublanguages
The Entity Relationship Model – Towards a Unified View of DataEdit
Description: This paper introduced the entity-relationship diagram(ERD) method of database design.
SEQUEL: A structured English query languageEdit
- Donald D. Chamberlin, Raymond F. Boyce
- International Conference on Management of Data, Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control, Ann Arbor, Michigan, pp. 249–264
Description: This paper introduced the SQL language.
The notions of consistency and predicate locks in a database systemEdit
Federated database systems for managing distributed, heterogeneous, and autonomous databasesEdit
- Amit Sheth, J.A. Larson,"
- ACM Computing Surveys - Special issue on heterogeneous databases Surveys, Volume 22 Issue 3, Pages 183 - 236, Sept. 1990
- ACM source
Description: Introduced federated database systems concept leading huge impact on data interoperability and integration of hetereogenous data sources.
Mining association rules between sets of items in large databasesEdit
- Rakesh Agrawal, Tomasz Imielinski, Arun Swami
- Proc. of the ACM SIGMOD Conference on Management of Data, pages 207–216, Washington, D.C., May 1993
- Online copy (HTML)
Description: Association rules, a very common method for data mining.
History of computationEdit
The Computer from Pascal to von NeumannEdit
- Goldstine, Herman H. (1972). The Computer from Pascal to von Neumann. Princeton University Press. ISBN 978-0-691-08104-5.
Description: Perhaps the first book on the history of computation.
A History of Computing in the Twentieth CenturyEdit
Description: Several chapters by pioneers of computing.
A Vector Space Model for Automatic IndexingEdit
- Gerard Salton, A. Wong, C. S. Yang
- Commun. ACM 18(11): 613–620 (1975)
Description: Presented the vector space model.
Extended Boolean Information RetrievalEdit
- Gerard Salton, Edward A. Fox, Harry Wu
- Commun. ACM 26(11): 1022–1036 (1983)
Description: Presented the inverted index
A Statistical Interpretation of Term Specificity and Its Application in RetrievalEdit
Description: Conceived a statistical interpretation of term specificity called Inverse document frequency (IDF), which became a cornerstone of term weighting.
Data Communications and NetworkingEdit
Description: This book presents a comprehensive and accessible approach to data communications and networking that has made this book a favorite with students and professionals alike. More than 830 figures and 150 tables accompany the text and provide a visual and intuitive opportunity for understanding the material.
An experimental timesharing system.Edit
- Fernando J. Corbató, M. Merwin-Daggett, and R.C. Daley
- Proceedings of the AFIPS FJCC, pages 335–344, 1962.
- Online copy (HTML)
Description: This paper discuss time-sharing as a method of sharing computer resource. This idea changed the interaction with computer systems.
The Working Set Model for Program BehaviorEdit
- Peter J. Denning
- Communications of the ACM, Vol. 11, No. 5, May 1968, pp 323–333
- Online version(PDF)
Virtual Memory, Processes, and Sharing in MULTICSEdit
- Robert C. Daley, Jack B. Dennis
- Communications of the ACM, Vol. 11, No. 5, May 1968, pp. 306–312.
- Online version(PDF)
Description: The classic paper on Multics, the most ambitious operating system in the early history of computing. Difficult reading, but it describes the implications of trying to build a system that takes information sharing to its logical extreme. Most operating systems since Multics have incorporated a subset of its facilities.
The nucleus of a multiprogramming systemEdit
- Per Brinch Hansen
- Communications of the ACM, Vol. 13, No. 4, April 1970, pp. 238–242
- Online version(PDF)
Operating System PrinciplesEdit
- Per Brinch Hansen
- Prentice Hall, Englewood Cliffs, NJ, July 1973
- Online version (ACM Digital Library)
Description: The first comprehensive textbook on operating systems. Includes the first monitor notation (Chapter 7).
A note on the confinement problemEdit
Description: This paper addresses issues in constraining the flow of information from untrusted programs. It discusses covert channels, but more importantly it addresses the difficulty in obtaining full confinement without making the program itself effectively unusable. The ideas are important when trying to understand containment of malicious code, as well as aspects of trusted computing.
The UNIX Time-Sharing SystemEdit
Description: The Unix operating system and its principles were described in this paper. The main importance is not of the paper but of the operating system, which had tremendous effect on operating system and computer technology.
Weighted voting for replicated dataEdit
- David K. Gifford
- Proceedings of the 7th ACM Symposium on Operating Systems Principles, pages 150–159, December 1979. Pacific Grove, California
- Online copy (few formats)
Description: This paper describes the consistency mechanism known as quorum consensus. It is a good example of algorithms that provide a continuous set of options between two alternatives (in this case, between the read-one write-all, and the write-one read-all consistency methods). There have been many variations and improvements by researchers in the years that followed, and it is one of the consistency algorithms that should be understood by all. The options available by choosing different size quorums provide a useful structure for discussing of the core requirements for consistency in distributed systems.
Experiences with Processes and Monitors in MesaEdit
- Butler W. Lampson, David D. Redell
- Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 105–117.
- Online copy (PDF)
Description: This is the classic paper on synchronization techniques, including both alternate approaches and pitfalls.
Scheduling Techniques for Concurrent SystemsEdit
- J. K. Ousterhout
- Proceedings of Third International Conference on Distributed Computing Systems, 1982, 22—30.
Description: Algorithms for coscheduling of related processes were given
A Fast File System for UNIXEdit
- Marshall Kirk Mckusick, William N. Joy, Samuel J. Leffler, Robert S. Fabry
- IACM Transactions on Computer Systems, Vol. 2, No. 3, August 1984, pp. 181–197.
- Online copy (PDF)
Description: The file system of UNIX. One of the first papers discussing how to manage disk storage for high-performance file systems. Most file-system research since this paper has been influenced by it, and most high-performance file systems of the last 20 years incorporate techniques from this paper.
The Design of the UNIX Operating SystemEdit
- Maurice J. Bach, AT&T Bell Labs
- Prentice Hall • 486 pp • Published 05/27/1986
The Design and Implementation of a Log-Structured File SystemEdit
- Mendel Rosenblum, J. K. Ousterhout
- ACM Transactions on Computer Systems, Vol. 10, No. 1 (February 1992), pp. 26–52.
- Online version
Description: Log-structured file system.
Microkernel operating system architecture and MachEdit
- David L. Black, David B. Golub, Daniel P. Julin, Richard F. Rashid, Richard P. Draves, Randall W. Dean, Alessandro Forin, Joseph Barrera, Hideyuki Tokuda, Gerald Malan, David Bohman
- Proceedings of the USENIX Workshop on Microkernels and Other Kernel Architectures, pages 11–30, April 1992.
Description: This is a good paper discussing one particular microkernel architecture and contrasting it with monolithic kernel design. Mach underlies Mac OS X, and its layered architecture had a significant impact on the design of the Windows NT kernel and modern microkernels like L4. In addition, its memory-mapped files feature was added to many monolithic kernels.
An Implementation of a Log-Structured File System for UNIXEdit
- Margo Seltzer, Keith Bostic, Marshall Kirk McKusick, Carl Staelin
- Proceedings of the Winter 1993 USENIX Conference, San Diego, CA, January 1993, 307-326
- Online version
Description: The paper was the first production-quality implementation of that idea which spawned much additional discussion of the viability and short-comings of log-structured filesystems. While "The Design and Implementation of a Log-Structured File System" was certainly the first, this one was important in bringing the research idea to a usable system.
Soft Updates: A Solution to the Metadata Update problem in File SystemsEdit
- G. Ganger, M. McKusick, C. Soules, Y. Patt
- ACM Transactions on Computer Systems 18, 2. pp 127–153, May 2000
- Online version
Description: A new way of maintaining filesystem consistency.
- John Backus et al.
- Proceedings of the WJCC (Western Joint Computer Conference), Los Angeles, California, February 1957.
- Online version(PDF)
Description: This paper describes the design and implementation of the first FORTRAN compiler by the IBM team. Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing.
Description: This paper introduced LISP, the first functional programming language, which was used heavily in many areas of computer science, especially in AI. LISP also has powerful features for manipulating LISP programs within the language.
- Revised Report on the Algorithmic Language Algol 60 by Peter Naur, et al. – The very influential ALGOL definition; with the first formally defined syntax.
- Brian Randell and L. J. Russell, ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer. Academic Press, 1964. The design of the Whetstone Compiler. One of the early published descriptions of implementing a compiler. See the related papers: Whetstone Algol Revisited, and The Whetstone KDF9 Algol Translator by Brian Randell
- Edsger W. Dijkstra, Algol 60 translation: an Algol 60 translator for the x1 and making a translator for Algol 60, report MR 35/61. Mathematisch Centrum, Amsterdam, 1961.
Description: Algol 60 introduced block structure.
Description: This seminal paper proposed an ideal language ISWIM, which without being ever implemented influenced the whole later development.
Fundamental Concepts in Programming LanguagesEdit
Description: Fundamental Concepts in Programming Languages introduced much programming language terminology still in use today, including R-values, L-values, parametric polymorphism, and ad hoc polymorphism.
Description: This series of papers and reports first defined the influential Scheme programming language and questioned the prevailing practices in programming language design, employing lambda calculus extensively to model programming language concepts and guide efficient implementation without sacrificing expressive power.
Structure and Interpretation of Computer ProgramsEdit
Description: This textbook explains core computer programming concepts, and is widely considered a classic text in computer science.
Description: This paper introduced monads to functional programming.
Towards a Theory of Type StructureEdit
An axiomatic basis for computer programmingEdit
- Tony Hoare
- Communications of the ACM, Volume 12 Issue 10, Oct. 1969, Pages 576-580
Description: This paper introduce Hoare logic, which forms the foundation of program verification
- Wilkinson, J. H.; Reinsch, C. (1971). Linear algebra, volume II of Handbook for Automatic Computation. Springer. ISBN 978-0-387-05414-8.
- Golub, Gene H.; van Loan, Charles F. (1996) , Matrix Computations, 3rd edition, Johns Hopkins University Press;, ISBN 978-0-8018-5414-9CS1 maint: extra punctuation (link)
- Booth, T. L. (1969). "Probabilistic representation of formal languages". IEEE Conference Record of the 1969 Tenth Annual Symposium on Switching and Automata Theory. pp. 74–81.
- Contains the first presentation of stochastic context-free grammars.
- Koskenniemi, Kimmo (1983), Two-level morphology: A general computational model of word-form recognition and production (PDF), Department of General Linguistics, University of Helsinki
- The first published description of computational morphology using finite state transducers. (Kaplan and Kay had previously done work in this field and presented this at a conference; the linguist Johnson had remarked the possibility in 1972, but not produced any implementation.)
- Rabiner, Lawrence R. (1989). "A tutorial on hidden Markov models and selected applications in speech recognition". Proceedings of the IEEE. 77 (2): 257–286. CiteSeerX 10.1.1.381.3454. doi:10.1109/5.18626.
- An overview of hidden Markov models geared toward speech recognition and other NLP fields, describing the Viterbi and forward-backward algorithms.
- Brill, Eric (1995). "Transformation-based error-driven learning and natural language processing: A case study in part-of-speech tagging". Computational Linguistics. 21 (4): 543–566.
- Manning, Christopher D.; Schütze, Hinrich (1999), Foundation of Statistical Natural Language Processing, MIT Press
- Textbook on statistical and probabilistic methods in NLP.
- Frost, Richard A. (2006). "Realization of Natural-Language Interfaces Using Lazy Functional Programming" (PDF). ACM Computing Surveys. 38 (4): 11–es. CiteSeerX 10.1.1.114.4151. doi:10.1145/1177352.1177353.
- This survey documents relatively less researched importance of lazy functional programming languages (i.e. Haskell) to construct Natural Language Processors and to accommodated many linguistic theories.
Software engineering: Report of a conference sponsored by the NATO Science CommitteeEdit
- Peter Naur, Brian Randell (eds.)
- Garmisch, Germany, 7–11 October 1968, Brussels, Scientific Affairs Division, NATO (1969) 231pp.
- Online copy (PDF)
Description: Conference of leading people in software field c. 1968
The paper defined the field of Software engineering
A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 SystemEdit
- Krasner, Glenn E.; Pope, Stephen T.
- The Journal of Object Technology, Aug-Sep 1988
- Online copy (PDF)
Description: A description of the system that originated the (now dominant) GUI programming paradigm of Model–view–controller
Description: Don't use goto – the beginning of structured programming.
On the criteria to be used in decomposing systems into modulesEdit
- David Parnas
- Communications of the ACM, Volume 15, Issue 12:1053–1058, December 1972.
- Online copy (PDF)
Description: The importance of modularization and information hiding. Note that information hiding was first presented in a different paper of the same author – "Information Distributions Aspects of Design Methodology", Proceedings of IFIP Congress '71, 1971, Booklet TA-3, pp. 26–30
Hierarchical Program StructuresEdit
- Ole-Johan Dahl, C. A. R. Hoare
- in Dahl, Dijkstra and Hoare, Structured Programming, Academic Press, London and New York, pp. 175–220, 1972.
Description: The beginning of Object-oriented programming. This paper argued that programs should be decomposed to independent components with small and simple interfaces. They also argued that objects should have both data and related methods.
A technique for software module specification with examplesEdit
Description: software specification.
- Wayne Stevens, Glenford Myers, and Larry Constantine
- IBM Systems Journal, 13 (2), 115–139, 1974.
- On-line copy (PDF)
The Emperor's Old ClothesEdit
- C.A.R. Hoare
- Communications of the ACM, Vol. 24, No. 2, February 1981, pp. 75–83.
- Archived copy (PDF)
Description: Illustrates the "second-system effect" and the importance of simplicity.
The Mythical Man-Month: Essays on Software EngineeringEdit
- Brooks, Jr., F. P.
- Addison Wesley Professional. 2nd edition, 1995.
Description: Throwing more people at the task will not speed its completion...
No Silver Bullet: Essence and Accidents of Software EngineeringEdit
- Brooks, Frederick. P., Jr. (April 1987). "No Silver Bullet: Essence and Accidents of Software Engineering". Computer. 20 (4): 10–19. CiteSeerX 10.1.1.117.315. doi:10.1109/MC.1987.1663532.
The Cathedral and the BazaarEdit
Design Patterns: Elements of Reusable Object Oriented SoftwareEdit
Description: This book was the first to define and list design patterns in computer science.
Statecharts: A Visual Formalism For Complex SystemsEdit
- David Harel
- D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8:231—274, 1987
- Online version
Description: Statecharts are a visual modeling method. They are an extension of state machine that might be exponentially more efficient. Therefore, statcharts enable formal modeling of applications that were too complex before. Statecharts are part of the UML diagrams.
- David Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms. Communications of the ACM, 4(2):84–88, February 1981.
- Dingledine and Mathewson, Anonymity Loves Company: Usability and the Network Effect, Workshop on the Economics of Information Security (WEIS) 2006
- Whitfield Diffie and Martin E. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, November 1976
- R. L. Rivest and A. Shamir and L. M. Adelman, A Method For Obtaining Digital Signatures And Public-Key Cryptosystems, MIT/LCS/TM-82, 1977
- Merkle, R. Security, Authentication, and Public Key Systems, PhD Thesis, 1979 Stanford University. (Just read chapter 2, pages 11–15, in which Merkle invents cryptographic hash functions.)
- Morris, Robert and Thompson, Ken. Password security: a case history, Communications of the ACM CACM Homepage archive Volume 22 Issue 11, Nov. 1979 Pages 594-597. PDF
- Saltzer and Schroeder, The Protection of Information in Computer Systems, ACM Symposium on Operating System Principles (October 1973) HTML HTML2
- Karger and Schell, Thirty Years later: Lessons from the Multics Security Evaluation, ACSAC 2002
- Lampson, Butler. A Note on the Confinement Problem, Communications of the ACM, 16:10 (Oct. 1973), pp. 613–615. PDF
- Thompson, Reflections on Trusting Trust, Communications of the ACM, 27:8, Aug 1984
- J.E. Forrester and B.P. Miller, An Empirical Study of the Robustness of Windows NT Applications Using Random Testing, 4th USENIX Windows Systems Symposium, Seattle, August 2000.
- Zissis D and Lekkas D, Addressing cloud computing security issues, Future Generation Computer Systems, 28/3, pp. 583–592, Elsevier 2012
- Whitten, Alma, Why Johnny Can't Encrypt: A Usability Evaluation of PGP 5.0, Proceedings of the 8th conference on USENIX Security Symposium, Volume 8, Pages 14–28
- Garfinkel, Simson and Shelat, Abhi, Remembrance of Data Passed, IEEE Security and Privacy, Volume 1 Issue 1, January 2003, Page 17-27
Theoretical computer scienceEdit
- DBLP (Digital Bibliography & Library Project in computer science)
- List of open problems in computer science
- List of computer science journals
- List of computer science conferences
- The Collection of Computer Science Bibliographies
- Paris Kanellakis Award, a prize given to honor specific theoretical accomplishments that have had a significant and demonstrable effect on the practice of computing.
- Linnainmaa, Seppo (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master's Thesis, Univ. Helsinki, 6-7.
- Griewank, Andreas (2012). Who Invented the Reverse Mode of Differentiation? Optimization Stories, Documenta Matematica, Extra Volume ISMP (2012), 389-400.
- Werbos, P.. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974
- Laplante 1996, p. 150
- Laplante 1996, p. 208
- The rendering equation
- Kass, M.; Witkin, A.; Terzopoulos, D. (1988). "Snakes: Active contour models" (PDF). International Journal of Computer Vision. 1 (4): 321. CiteSeerX 10.1.1.124.5318. doi:10.1007/BF00133570. Archived (PDF) from the original on 2016-01-12. Retrieved 2015-08-28. Cite uses deprecated parameter
- Behrouz Forouzan. "Data communication and networking book". McGrawhill Education. Archived from the original on 4 September 2014. Retrieved 1 Jan 2013. Cite uses deprecated parameter
- Laplante 1996, p. 62
- Pierce, Benjamin C. (2004). "Great works in programming languages". Penn Engineering. Missing or empty
- "Archived copy" (PDF). Archived (PDF) from the original on 2007-02-04. Retrieved 2007-02-26. Cite uses deprecated parameter
|dead-url=(help)CS1 maint: archived copy as title (link)
- "Google Академія". Archived from the original on 2015-05-14. Retrieved 2016-11-14. Cite uses deprecated parameter
- Model View Controller History Archived 2011-05-15 at the Wayback Machine. C2.com (2012-05-11). Retrieved on 2013-12-09.
- Laplante, Phillip, ed. (1996). Great papers in computer science. New York: IEEE Press. ISBN 978-0-314-06365-6.
- Randell, Brian (ed). (1982). The Origins of Digital Computers: Selected Papers. 3rd ed. Berlin: Springer-Verlag. ISBN 0-387-11319-3.
- Turning Points in Computing: 1962–1999, Special Issue, IBM Systems Journal, 38 (2/3),1999.
- Yourdon, Edward (ed.) (1979) Classics in Software Engineering. New York: Yourdon Press. ISBN 0-917072-14-6
- ACM Classic Books Series
- Most cited articles in Computer Science (CiteSeer Database)
- 50 most influential papers ACM SIGPLAN papers published in PLDI from 1979 through 1999; organized into a special SIGPLAN proceedings.