An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion , which will decide whether or not to retain it. |
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)
|
This is a list of important publications in computer science, organized by field. Some reasons why a particular publication might be regarded as important:
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.
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.)
Description: The seminal paper published in 1965 provides details on the mathematics of fuzzy set theory.
Description: This book introduced Bayesian methods to AI.
Description: The standard textbook in Artificial Intelligence. The book web site lists over 1100 colleges.
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.
Description: This paper created Algorithmic learning theory.
Description: Computational learning theory, VC theory, statistical uniform convergence and the VC dimension. While the bounds in this paper are not the best possible, it would take 50 years before the best bound was obtained by Michael Naaman in 2021. [1]
Description: The Probably approximately correct learning (PAC learning) framework.
Description: Seppo Linnainmaa's reverse mode of automatic differentiation [2] [3] (first applied to neural networks by Paul Werbos [4] ) is used in experiments by David Rumelhart, Geoff Hinton and Ronald J. Williams to learn internal representations.
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.
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.
Description: The Temporal difference method for reinforcement learning.
Description: The complete characterization of PAC learnability using the VC dimension.
Description: Proving negative results for PAC learning.
Description: Proving that weak and strong learnability are equivalent in the noise free PAC framework. The proof was done by introducing the boosting method.
Description: This paper presented support vector machines, a practical and popular machine learning algorithm. Support vector machines often use the kernel trick.
Description: This paper presented a tractable greedy layer-wise learning algorithm for deep belief networks, which led to great advancement in the field of deep learning.
Description: The first application of supervised learning to gene expression data, in particular Support Vector Machines. The method is now standard, and the paper one of the most cited in the area.
Description: Introduced the transformer.
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 descendants. [5]
Description: About grammar attribution, the base for yacc's s-attributed and zyacc's LR-attributed approach.
Description: The first textbook on compilers. Dick Grune says that entire generations of compiler constructors grew up with it and have not regretted it. One of the first texts to be produced using punched cards input to a formatting program. The cards and formatting program are preserved at the Stanford Computer History Exhibits. See David Gries#Textbooks for links.
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.
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."
Description: Yacc is a tool that made compiler writing much easier.
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.
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. See First Draft of a Report on the EDVAC.
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.
Description: The reduced instruction set computer( RISC ) CPU design philosophy. The RISC is a CPU design philosophy that favors a reduced set of simpler instructions.
Description:
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.
Description: The Amdahl's Law.
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.
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.
Description: The Academy of Motion Picture Arts and Sciences cited this paper as a "milestone in computer graphics".
Description: One of the founding works on computer graphics.
Description: A correlation method based upon the inverse Fourier transform
Description: A method for estimating the image motion of world points between 2 frames of a video sequence.
Description: This paper provides efficient technique for image registration
Description: A technique for image encoding using local operators of many scales.
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.
Description: An interactive variational technique for image segmentation and visual tracking.
Description: A technique for visual tracking
Description: A technique (scale-invariant feature transform) for robust feature description
Topics covered: concurrent computing, parallel computing, and distributed computing.
Description: This paper introduced the relational model for databases. This model became the number one model.
Description: This paper introduced the B-Trees data structure. This model became the number one model.
Description: Completeness of Data Base Sublanguages
Description: This paper introduced the entity-relationship diagram (ERD) method of database design.
Description: This paper introduced the SQL language.
Description: This paper defined the concepts of transaction, consistency and schedule. It also argued that a transaction needs to lock a logical rather than a physical subset of the database.
Description: Introduced federated database systems concept leading huge impact on data interoperability and integration of hetereogeneous data sources.
Description: Association rules, a very common method for data mining.
Description: Perhaps the first book on the history of computation.
edited by:
Description: Several chapters by pioneers of computing.
Description: Presented the vector space model.
Description: Presented the inverted index
Description: Conceived a statistical interpretation of term specificity called Inverse document frequency (IDF), which became a cornerstone of term weighting.
Description: This paper contains a lot of the ideas that later became TCP and IP, two foundational protocols that make up the Internet. Cerf and Kahn received the ACM Turing Award, in part for the work contained in this paper.
Description: This paper describes some of the design principles behind the Internet, and how those design principles are realized in the Internet.
Description: This paper presents the "end-to-end argument", a classic design principle widely used to guide the design of many of the Internet's protocols and systems.
Description: This paper identifies the problem of network congestion, and presents an algorithm for how protocols can reduce their sending rate to reduce congestion. This approach was incorporated into the TCP protocol, and influenced design of many other data transport protocols.
Description: This paper presents "fair queuing", a buffer allocation algorithm nearly universally deployed on Internet routers.
Description: This paper describes an algorithmic approach to finding the prefix (supernet) containing a particular IP address, a process which is now nearly universally-used on Internet routers.
Description: This paper presents the concept of a Distributed Hash Table (DHT), a distributed data structure that had influenced the design of a number of peer-to-peer systems, distributed filesystems, and other large-scale distributed systems.
Also see the "Top Ten Networking Papers" lists published in ACM SIGCOMM CCR:
Description: This paper discuss time-sharing as a method of sharing computer resource. This idea changed the interaction with computer systems.
Description: The beginning of cache. For more information see SIGOPS Hall of Fame Archived 2006-09-21 at the Wayback Machine .
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.
Description: Classic paper on the extensible nucleus architecture of the RC 4000 multiprogramming system, and what became known as the operating system kernel and microkernel architecture.
Description: The first comprehensive textbook on operating systems. Includes the first monitor notation (Chapter 7).
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.
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.
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.
Description: This is the classic paper on synchronization techniques, including both alternate approaches and pitfalls.
Description: Algorithms for coscheduling of related processes were given
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.
This definitive description principally covered the System V Release 2 kernel, with some new features from Release 3 and BSD.
Description: Log-structured file system.
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.
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.
Description: A new way of maintaining filesystem consistency.
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.
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.
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.
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.
Description: This paper introduced System F and created the modern notion of Parametric polymorphism
Description: This paper introduce Hoare logic, which forms the foundation of program verification
Description: Conference of leading people in software field c. 1968
The paper defined the field of Software engineering
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.
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
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.
Description: Introduces Liskov substitution principle and establishes behavioral subtyping rules.
Description: software specification.
Description: Seminal paper on Structured Design, data flow diagram, coupling, and cohesion.
Description: Illustrates the "second-system effect" and the importance of simplicity.
Description: Throwing more people at the task will not speed its completion...
Description: Brooks argues that "there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity." He also states that "we cannot expect ever to see two-fold gains every two years" in software development, as there is in hardware development (Moore's law).
Description: Open source methodology.
Description: This book was the first to define and list design patterns in computer science.
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.
Topics covered: theoretical computer science, including computability theory, computational complexity theory, algorithms, algorithmic information theory, information theory and formal verification.
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both hardware and software. Computing has scientific, engineering, mathematical, technological, and social aspects. Major computing disciplines include computer engineering, computer science, cybersecurity, data science, information systems, information technology, and software engineering.
Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines to applied disciplines.
Niklaus Emil Wirth was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".
In computer science, an abstract machine is a theoretical model that allows for a detailed and precise analysis of how a computer system functions. It is similar to a mathematical function in that it receives inputs and produces outputs based on predefined rules. Abstract machines vary from literal machines in that they are expected to perform correctly and independently of hardware. Abstract machines are "machines" because they allow step-by-step execution of programmes; they are "abstract" because they ignore many aspects of actual (hardware) machines. A typical abstract machine consists of a definition in terms of input, output, and the set of allowable operations used to turn the former into the latter. They can be used for purely theoretical reasons as well as models for real-world computer systems. In the theory of computation, abstract machines are often used in thought experiments regarding computability or to analyse the complexity of algorithms. This use of abstract machines is fundamental to the field of computational complexity theory, such as finite state machines, Mealy machines, push-down automata, and Turing machines.
Theoretical computer science is a subfield of computer science and mathematics that focuses on the abstract and mathematical foundations of computation, such as the theory of computation, formal language theory, the lambda calculus and type theory.
Algorithmic learning theory is a mathematical framework for analyzing machine learning problems and algorithms. Synonyms include formal learning theory and algorithmic inductive inference. Algorithmic learning theory is different from statistical learning theory in that it does not make use of statistical assumptions and analysis. Both algorithmic and statistical learning theory are concerned with machine learning and can thus be viewed as branches of computational learning theory.
In computer science, computational learning theory is a subfield of artificial intelligence devoted to studying the design and analysis of machine learning algorithms.
Peter John Landin was a British computer scientist. He was one of the first to realise that the lambda calculus could be used to model a programming language, an insight that is essential to the development of both functional programming and denotational semantics.
ACM SIGACT or SIGACT is the Association for Computing Machinery Special Interest Group on Algorithms and Computation Theory, whose purpose is support of research in theoretical computer science. It was founded in 1968 by Patrick C. Fischer.
Computational thinking (CT) refers to the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms. In education, CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute. It involves automation of processes, but also using computing to explore, analyze, and understand processes.
In computing, a compiler is a computer program that transforms source code written in a programming language or computer language, into another computer language. The most common reason for transforming source code is to create an executable program.
Informatics is the study of computational systems. According to the ACM Europe Council and Informatics Europe, informatics is synonymous with computer science and computing as a profession, in which the central notion is transformation of information. In some cases, the term "informatics" may also be used with different meanings, e.g. in the context of social computing, or in context of library science.
Dana Angluin is a professor emeritus of computer science at Yale University. She is known for foundational work in computational learning theory and distributed computing.
Data-intensive computing is a class of parallel computing applications which use a data parallel approach to process large volumes of data typically terabytes or petabytes in size and typically referred to as big data. Computing applications that devote most of their execution time to computational requirements are deemed compute-intensive, whereas applications are deemed data-intensive require large volumes of data and devote most of their processing time to I/O and manipulation of data.
This glossary of artificial intelligence is a list of definitions of terms and concepts relevant to the study of artificial intelligence, its sub-disciplines, and related fields. Related glossaries include Glossary of computer science, Glossary of robotics, and Glossary of machine vision.
{{cite web}}
: CS1 maint: archived copy as title (link)