List of important publications in computer science  

From The Art and Popular Culture Encyclopedia

Jump to: navigation, search

Related e

Wikipedia
Wiktionary
Shop


Featured:

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.

Template:TOC limit

Contents

Artificial intelligence

Computing Machinery and Intelligence

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 Intelligence

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.)

Fuzzy sets

  • 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 Inference

Description: This book introduced Bayesian methods to AI.

Artificial Intelligence: A Modern Approach

Description: The standard textbook in Artificial Intelligence. The book web site lists over 1100 colleges.

Machine learning

An Inductive Inference Machine

  • 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 limit

Description: This paper created Algorithmic learning theory.

On the uniform convergence of relative frequencies of events to their probabilities

Description: Computational learning theory, VC theory, statistical uniform convergence and the VC dimension.

A theory of the learnable

Description: The Probably approximately correct learning (PAC learning) framework.

Learning representations by back-propagating errors

Seppo Linnainmaa's reverse mode of automatic differentiation<ref name="lin1970">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.</ref><ref name="grie2012">Griewank, Andreas (2012). Who Invented the Reverse Mode of Differentiation? Optimization Stories, Documenta Matematica, Extra Volume ISMP (2012), 389-400.</ref> (first applied to neural networks by Paul Werbos<ref>Werbos, P.. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974</ref>) is used in experiments by David Rumelhart, Geoff Hinton and Ronald J. Williams to learn internal representations.

Induction of Decision Trees

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 Algorithm

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 difference

Description: The Temporal difference method for reinforcement learning.

Learnability and the Vapnik–Chervonenkis dimension

Description: The complete characterization of PAC learnability using the VC dimension.

Cryptographic limitations on learning boolean formulae and finite automata

Description: Proving negative results for PAC learning.

The strength of weak learnability

Description: Proving that weak and strong learnability are equivalent in the noise free PAC framework. The proof was done by introducing the boosting method.

A training algorithm for optimum margin classifiers

Description: This paper presented support vector machines, a practical and popular machine learning algorithm. Support vector machines often use the kernel trick.

A fast learning algorithm for deep belief nets

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.

Knowledge-based analysis of microarray gene expression data by using support vector machines

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.

Collaborative networks

  • Template:Cite journal
  • Camarinha-Matos, L. M.; Afsarmanesh, H. (2008). Collaborative Networks: Reference Modeling, Springer: New York.

Compilers

On the translation of languages from left to right

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.<ref>Template:Harvnb</ref>

Semantics of Context-Free Languages.

Description: About grammar attribution, the base for yacc's s-attributed and zyacc's LR-attributed approach.

A program data flow analysis procedure

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 Optimization

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-compiler

Description: Yacc is a tool that made compiler writing much easier.

gprof: A Call Graph Execution Profiler

Description: The gprof profiler

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.

Computer architecture

Colossus computer

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.

First Draft of a Report on the EDVAC<ref>Template:Harvnb</ref>

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/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 computer

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.

Comments on "the Case for the Reduced Instruction Set Computer"

Description:

The CRAY-1 Computer System

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 Capabilities

Description: The Amdahl's Law.

A Case for Redundant Arrays of Inexpensive Disks (RAID)

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 multiprocessor

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.

Computer graphics

The Rendering Equation

Elastically deformable models

Description: The Academy of Motion Picture Arts and Sciences cited this paper as a "milestone in computer graphics".

Sketchpad, a Man-Machine Graphical Communication System

Description: One of the founding works on computer graphics.

Computer vision

The Phase Correlation Image Alignment Method

  • 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 Flow

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 Vision

Description: This paper provides efficient technique for image registration

The Laplacian Pyramid as a compact image code

Description: A technique for image encoding using local operators of many scales.

Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images

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 models

Description: An interactive variational technique for image segmentation and visual tracking.

Condensation – conditional density propagation for visual tracking

Description: A technique for visual tracking

Object recognition from local scale-invariant features

Description: A technique (scale-invariant feature transform) for robust feature description

Concurrent, parallel, and distributed computing

 |{{#if:|, | and }}[[{{{2}}}|{{{2}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{3}}}|{{{3}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{4}}}|{{{4}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{5}}}|{{{5}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{6}}}|{{{6}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{7}}}|{{{7}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{8}}}|{{{8}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{9}}}|{{{9}}}]]}}{{#if:
|, and [[{{{10}}}|{{{10}}}]]}}{{#if: | (too many parameters in {{main}})}}

Topics covered: concurrent computing, parallel computing, and distributed computing.

Databases

A relational model for large shared data banks

Description: This paper introduced the relational model for databases. This model became the number one model.

Binary B-Trees for Virtual Memory

  • Rudolf Bayer
  • ACM-SIGFIDET Workshop 1971, San Diego, California, Session 5B, p. 219–235.

Description: This paper introduced the B-Trees data structure. This model became the number one model.

Relational Completeness of Data Base Sublanguages

  • 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 Data

Description: This paper introduced the entity-relationship diagram(ERD) method of database design.

SEQUEL: A structured English query language

  • 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 system

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.

Federated database systems for managing distributed, heterogeneous, and autonomous databases

  • 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 hetereogeneous data sources.

Mining association rules between sets of items in large databases

Description: Association rules, a very common method for data mining.

History of computation

The Computer from Pascal to von Neumann

Description: Perhaps the first book on the history of computation.

A History of Computing in the Twentieth Century

edited by:

Description: Several chapters by pioneers of computing.

Information retrieval

A Vector Space Model for Automatic Indexing

  • Gerard Salton, A. Wong, C. S. Yang
  • Commun. ACM 18(11): 613–620 (1975)

Description: Presented the vector space model.

Extended Boolean Information Retrieval

  • 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 Retrieval

Description: Conceived a statistical interpretation of term specificity called Inverse document frequency (IDF), which became a cornerstone of term weighting.

Networking

Data Communications and Networking

  1. if: {{#if: http://highered.mheducation.com/sites/0073376221/information_center_view0/index.html | {{#if: Data communication and networking book |1}}}}
 ||Error on call to Template:cite web: Parameters url and title must be specified

}}{{

  1. if:
 | {{#if: {{#if: | {{#if:  |1}}}}
   ||Error on call to template:cite web: Parameters archiveurl and archivedate must be both specified or both omitted

}} }}{{#if: Behrouz Forouzan

 | {{#if: 
   | [[{{{authorlink}}}|{{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | Behrouz Forouzan
   }}]]
   | {{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | Behrouz Forouzan
   }}
 }}

}}{{#if: Behrouz Forouzan

 | {{#if: | ; {{{coauthors}}} }}

}}{{#if: Behrouz Forouzan|

   {{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 |}}

}}{{#if: Behrouz Forouzan

 | . }}{{
 #if: 
 |  {{{editor}}}: 

}}{{#if:

   | {{#if:  | {{#if: Data communication and networking book | [{{{archiveurl}}} Data communication and networking book] }}}}
   | {{#if: http://highered.mheducation.com/sites/0073376221/information_center_view0/index.html | {{#if: Data communication and networking book | Data communication and networking book }}}}

}}{{#if: | ({{{language}}}) }}{{#if:

 |  ()

}}{{#if:

 | . {{{work}}}

}}{{#if:

 |  {{{pages}}}

}}{{#if: McGrawhill Education

 | . McGrawhill Education{{#if: Behrouz Forouzan
   | 
   | {{#if:  || }}
 }}

}}{{#if: Behrouz Forouzan

 ||{{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 }}

}}.{{#if:

 |  Archived from the original on [[{{{archivedate}}}]].

}}{{#if: 1 Jan 2013

 |  Retrieved on {{#time:Y F j|1 Jan 2013{{#if:  | , {{{accessyear}}}}}}}.

}}{{#if:

 |  Retrieved on {{{accessmonthday}}}, {{{accessyear}}}.

}}{{#if:

 |  Retrieved on {{{accessdaymonth}}} {{{accessyear}}}.

}}{{#if:

 |  “{{{quote}}}”

}}</ref>

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.

Operating systems

An experimental timesharing system.

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 Behavior

Description: The beginning of cache. For more information see SIGOPS Hall of Fame.

Virtual Memory, Processes, and Sharing in MULTICS

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 system

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.

Operating System Principles

Description: The first comprehensive textbook on operating systems. Includes the first monitor notation (Chapter 7).

A note on the confinement problem

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 System

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 data

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 Mesa

Description: This is the classic paper on synchronization techniques, including both alternate approaches and pitfalls.

Scheduling Techniques for Concurrent Systems

Description: Algorithms for coscheduling of related processes were given

A Fast File System for UNIX

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 System

  • Maurice J. Bach, AT&T Bell Labs
  • Prentice Hall • 486 pp • Published 05/27/1986

This definitive description principally covered the System V Release 2 kernel, with some new features from Release 3 and BSD.

The Design and Implementation of a Log-Structured File System

Description: Log-structured file system.

Microkernel operating system architecture and Mach

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 UNIX

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 Systems

Description: A new way of maintaining filesystem consistency.

Programming languages

The FORTRAN Automatic Coding System<ref>Template:Harvnb</ref>

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.

Recursive functions of symbolic expressions and their computation by machine, part I<ref name=Pierce2004/>

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.

ALGOL 60

  1. if: {{#if: http://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF | {{#if: Archived copy |1}}}}
 ||Error on call to Template:cite web: Parameters url and title must be specified

}}{{

  1. if:
 | {{#if: {{#if: | {{#if:  |1}}}}
   ||Error on call to template:cite web: Parameters archiveurl and archivedate must be both specified or both omitted

}} }}{{#if:

 | {{#if: 
   | [[{{{authorlink}}}|{{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | {{{author}}}
   }}]]
   | {{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | {{{author}}}
   }}
 }}

}}{{#if:

 | {{#if: | ; {{{coauthors}}} }}

}}{{#if: |

   {{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 |}}

}}{{#if:

 | . }}{{
 #if: 
 |  {{{editor}}}: 

}}{{#if:

   | {{#if:  | {{#if: Archived copy | [{{{archiveurl}}} Archived copy] }}}}
   | {{#if: http://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF | {{#if: Archived copy | Archived copy }}}}

}}{{#if: | ({{{language}}}) }}{{#if:

 |  ()

}}{{#if:

 | . {{{work}}}

}}{{#if:

 |  {{{pages}}}

}}{{#if:

 | . {{{publisher}}}{{#if: 
   | 
   | {{#if:  || }}
 }}

}}{{#if:

 ||{{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 }}

}}.{{#if:

 |  Archived from the original on [[{{{archivedate}}}]].

}}{{#if:

 |  Retrieved on {{#time:Y F j|{{{accessdate}}}{{#if:  | , {{{accessyear}}}}}}}.

}}{{#if:

 |  Retrieved on {{{accessmonthday}}}, {{{accessyear}}}.

}}{{#if:

 |  Retrieved on {{{accessdaymonth}}} {{{accessyear}}}.

}}{{#if:

 |  “{{{quote}}}”

}}</ref>

Description: Algol 60 introduced block structure.

===The next 700 programming languages<ref name=Pierce2004>{{

  1. if: {{#if: | {{#if: Great works in programming languages |1}}}}
 ||Error on call to Template:cite web: Parameters url and title must be specified

}}{{

  1. if:
 | {{#if: {{#if: | {{#if:  |1}}}}
   ||Error on call to template:cite web: Parameters archiveurl and archivedate must be both specified or both omitted

}} }}{{#if: Pierce

 | {{#if: 
   | [[{{{authorlink}}}|{{#if: Pierce
     | Pierce{{#if: Benjamin C. | , Benjamin C. }}
     | {{{author}}}
   }}]]
   | {{#if: Pierce
     | Pierce{{#if: Benjamin C. | , Benjamin C. }}
     | {{{author}}}
   }}
 }}

}}{{#if: Pierce

 | {{#if: | ; {{{coauthors}}} }}

}}{{#if: Pierce|

   {{#if: 
   |  ({{{date}}})
   | {{#if: 2004
     | {{#if: 
       |  ({{{month}}} 2004)
       |  (2004)
     }}
   }}
 |}}

}}{{#if: Pierce

 | . }}{{
 #if: 
 |  {{{editor}}}: 

}}{{#if:

   | {{#if:  | {{#if: Great works in programming languages | [{{{archiveurl}}} Great works in programming languages] }}}}
   | {{#if:  | {{#if: Great works in programming languages | [{{{url}}} Great works in programming languages] }}}}

}}{{#if: | ({{{language}}}) }}{{#if:

 |  ()

}}{{#if:

 | . {{{work}}}

}}{{#if:

 |  {{{pages}}}

}}{{#if: Penn Engineering

 | . Penn Engineering{{#if: Pierce
   | 
   | {{#if: 2004 || }}
 }}

}}{{#if: Pierce

 ||{{#if: 
   |  ({{{date}}})
   | {{#if: 2004
     | {{#if: 
       |  ({{{month}}} 2004)
       |  (2004)
     }}
   }}
 }}

}}.{{#if:

 |  Archived from [{{{url}}} the original] on [[{{{archivedate}}}]].

}}{{#if:

 |  Retrieved on {{#time:Y F j|{{{accessdate}}}{{#if:  | , {{{accessyear}}}}}}}.

}}{{#if:

 |  Retrieved on {{{accessmonthday}}}, {{{accessyear}}}.

}}{{#if:

 |  Retrieved on {{{accessdaymonth}}} {{{accessyear}}}.

}}{{#if:

 |  “{{{quote}}}”

}}</ref>===

  • Peter Landin
  • Communications of the ACM 9(3):157–65, March 1966<ref>{{
  1. if: {{#if: https://scholar.google.com/scholar?hl=uk&lr=&cluster=2856797924573721037&um=1&ie=UTF-8&sa=X&oi=science_links&resnum=1&ct=sl-allversions | {{#if: Google Академія |1}}}}
 ||Error on call to Template:cite web: Parameters url and title must be specified

}}{{

  1. if:
 | {{#if: {{#if: | {{#if:  |1}}}}
   ||Error on call to template:cite web: Parameters archiveurl and archivedate must be both specified or both omitted

}} }}{{#if:

 | {{#if: 
   | [[{{{authorlink}}}|{{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | {{{author}}}
   }}]]
   | {{#if: 
     | {{{last}}}{{#if:  | , {{{first}}} }}
     | {{{author}}}
   }}
 }}

}}{{#if:

 | {{#if: | ; {{{coauthors}}} }}

}}{{#if: |

   {{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 |}}

}}{{#if:

 | . }}{{
 #if: 
 |  {{{editor}}}: 

}}{{#if:

   | {{#if:  | {{#if: Google Академія | [{{{archiveurl}}} Google Академія] }}}}
   | {{#if: https://scholar.google.com/scholar?hl=uk&lr=&cluster=2856797924573721037&um=1&ie=UTF-8&sa=X&oi=science_links&resnum=1&ct=sl-allversions | {{#if: Google Академія | Google Академія }}}}

}}{{#if: | ({{{language}}}) }}{{#if:

 |  ()

}}{{#if:

 | . {{{work}}}

}}{{#if:

 |  {{{pages}}}

}}{{#if:

 | . {{{publisher}}}{{#if: 
   | 
   | {{#if:  || }}
 }}

}}{{#if:

 ||{{#if: 
   |  ({{{date}}})
   | {{#if: 
     | {{#if: 
       |  ({{{month}}} {{{year}}})
       |  ({{{year}}})
     }}
   }}
 }}

}}.{{#if:

 |  Archived from the original on [[{{{archivedate}}}]].

}}{{#if:

 |  Retrieved on {{#time:Y F j|{{{accessdate}}}{{#if:  | , {{{accessyear}}}}}}}.

}}{{#if:

 |  Retrieved on {{{accessmonthday}}}, {{{accessyear}}}.

}}{{#if:

 |  Retrieved on {{{accessdaymonth}}} {{{accessyear}}}.

}}{{#if:

 |  “{{{quote}}}”

}}</ref>

Description: This seminal paper proposed an ideal language ISWIM, which without being ever implemented influenced the whole later development.

Fundamental Concepts in Programming Languages

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.

Lambda Papers

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 Programs

 |{{#if:|, | and }}[[{{{2}}}|{{{2}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{3}}}|{{{3}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{4}}}|{{{4}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{5}}}|{{{5}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{6}}}|{{{6}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{7}}}|{{{7}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{8}}}|{{{8}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{9}}}|{{{9}}}]]}}{{#if:
|, and [[{{{10}}}|{{{10}}}]]}}{{#if: | (too many parameters in {{main}})}}

Description: This textbook explains core computer programming concepts, and is widely considered a classic text in computer science.

Online course

Comprehending Monads

Description: This paper introduced monads to functional programming.

Towards a Theory of Type Structure

Description: This paper introduced System F and created the modern notion of Parametric polymorphism

An axiomatic basis for computer programming

Description: This paper introduce Hoare logic, which forms the foundation of program verification

Scientific computing

Main article{{#if:|s}}: Computational science{{#if:
 |{{#if:|, | and }}[[{{{2}}}|{{{2}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{3}}}|{{{3}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{4}}}|{{{4}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{5}}}|{{{5}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{6}}}|{{{6}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{7}}}|{{{7}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{8}}}|{{{8}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{9}}}|{{{9}}}]]}}{{#if:
|, and [[{{{10}}}|{{{10}}}]]}}{{#if: | (too many parameters in {{main}})}}
[edit]

Computational linguistics

Contains the first presentation of stochastic context-free grammars.
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.)
An overview of hidden Markov models geared toward speech recognition and other NLP fields, describing the Viterbi and forward-backward algorithms.
Describes a now commonly used POS tagger based on transformation-based learning.
Textbook on statistical and probabilistic methods in NLP.
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.
[edit]

Software engineering

Template:See also

[edit]

Software engineering: Report of a conference sponsored by the NATO Science Committee

Description: Conference of leading people in software field c. 1968
The paper defined the field of Software engineering

[edit]

A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System<ref>Model View Controller History Template:Webarchive. C2.com (2012-05-11). Retrieved on 2013-12-09.</ref>

Description: A description of the system that originated the (now dominant) GUI programming paradigm of Model–view–controller

[edit]

Go To Statement Considered Harmful<ref name=Pierce2004/>

Description: Don't use goto – the beginning of structured programming.

[edit]

On the criteria to be used in decomposing systems into modules

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

[edit]

Hierarchical Program Structures

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.

[edit]

A Behavioral Notion of Subtyping

Description: Introduces Liskov substitution principle and establishes behavioral subtyping rules.

[edit]

A technique for software module specification with examples

Description: software specification.

[edit]

Structured Design

Description: Seminal paper on Structured Design, data flow diagram, coupling, and cohesion.

[edit]

The Emperor's Old Clothes

Description: Illustrates the "second-system effect" and the importance of simplicity.

[edit]

The Mythical Man-Month: Essays on Software Engineering

Description: Throwing more people at the task will not speed its completion...

[edit]

No Silver Bullet: Essence and Accidents of Software Engineering

[edit]

The Cathedral and the Bazaar

Description: Open source methodology.

[edit]

Design Patterns: Elements of Reusable Object Oriented Software

Description: This book was the first to define and list design patterns in computer science.

[edit]

Statecharts: A Visual Formalism For Complex Systems

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.

[edit]

Security

[edit]

Anonymity Systems

[edit]

Cryptography

Main article{{#if:|s}}: List of important publications in cryptography{{#if:
 |{{#if:|, | and }}[[{{{2}}}|{{{2}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{3}}}|{{{3}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{4}}}|{{{4}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{5}}}|{{{5}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{6}}}|{{{6}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{7}}}|{{{7}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{8}}}|{{{8}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{9}}}|{{{9}}}]]}}{{#if:
|, and [[{{{10}}}|{{{10}}}]]}}{{#if: | (too many parameters in {{main}})}}
[edit]

Passwords

[edit]

System Security

[edit]

Usable Security

[edit]

Theoretical computer science

 |{{#if:|, | and }}[[{{{2}}}|{{{2}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{3}}}|{{{3}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{4}}}|{{{4}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{5}}}|{{{5}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{6}}}|{{{6}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{7}}}|{{{7}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{8}}}|{{{8}}}]]}}{{#if:
 |{{#if:|, |, and }}[[{{{9}}}|{{{9}}}]]}}{{#if:
|, and [[{{{10}}}|{{{10}}}]]}}{{#if: | (too many parameters in {{main}})}}

Topics covered: theoretical computer science, including computability theory, computational complexity theory, algorithms, algorithmic information theory, information theory and formal verification.

[edit]

See also





Unless indicated otherwise, the text in this article is either based on Wikipedia article "List of important publications in computer science" or another language Wikipedia page thereof used under the terms of the GNU Free Documentation License; or on research by Jahsonic and friends. See Art and Popular Culture's copyright notice.

Retrieved from "http://artandpopularculture.com/List_of_important_publications_in_computer_science"
Views
Personal tools
Metas
Navigation