Great Papers in Computer Science

                        Phillip Laplante

                           
                            Burlington County College
                            West Publishing Company, 1996
                            ISBN: 0-314-06365



Contents

Section 1     Algorithms and Data Structures

1.1       The Complexity of Theorem Proving Procedures                                                   2
By Stephen A. Cook

1.2      On the Conceptual Complexity of Algorithms                                                          10
By J. Hartmanis and R. E. Stearns

1.3      Quicksort                                                                                                                                31
By C. A. R. Hoare

1.4      Finite Automata and Their Decision Problems                                                      40
By M. O. Rabin and D. Scott

Section 2     Programming Languages

2.1       The FORTRAN Automatic Coding System                                                              62
By J. W. Backus, et al.

2.2      An Axiomatic Basis for Computer Programming                                                   80
By C. A. R. Hoare

2.3      An Axiomatic Definition of the Programming Language Pascal                     90

By C. A. R. Hoare and N. Wirth

2.4      The Contour Model of Block Structured Processes                                               111
By John B. Johnston

2.5      On the Translation of Languages from Left to Right                                               150
By Donald E. Knuth

2.6      Revised Report on the Algorithmic Language ALGOL 60                                 174
By Peter Naur, et al.


Section 3      Architecture

  3.1       First Draft of a Report on the EFVAC                                                                          208

By John von Neumann

                                  3.2       A Symbolic Analysis of Relay and Switching Circuits                                          219

By Claude E. Shannon

3.3      Alto: A Personal Computer                                                                                         246
By C. P. Thacker, E. M. McCreight, B. W. Lampson,
R. F. Sproull, and D. R Boggs

3.4       The Best Way to Design an Automatic Calculating Machine                           279
By M. V. Wilkes

Section 4     Numerical and Scientific Computing

4.1      On Computable Numbers, with an Application                                                       287
to the Entscheidungsproblem
By A. M. Turing

4.2      On Computable Numbers, with an Application                                                       317
to the Entscheidungsproblem. A Correction
By A. M.Turing

Section 5     Operating Systems

5.1      Cooperating Sequential Processes                                                                           321
By Edsger W. Dijkstra

5.2     Solution of a Problem in Concurrent Process Control                            378
By Edsger W. Dijkstra

5.3        A Formal System for Information Retrieval from Files                                      381
By David Hsiao and Frank Harary

Section 6     Software Methodology and Engineering

6.1      No Silver Bullet — Essence and Accidents of                                                        397
Software Engineering

By Frederick P. Brooks

6.2      Guarded Commands, Nondeterminancy, and                                                         412
Formal Derivation of Programs
By Edsger W. Dijkstra

6.3      Go To Statement Considered Harmful                                                                     420
By Edsger W. Dijkstra

6.4      Proof of Correctness of Data Representations                                                        423
By C. A. R. Hoare

6.5      On the Criteria to be Used in Decomposing Systems                                         433
into Modules

By David L. Parnas

6.6      A Rational Design Process: How and Why to Fake It                                          442
By David L. Parnas and Paul C. Clements

6.7      Global Variables Considered Harmful                                                                      452
By W. Wulf and M. Shaw

Section 7    Databases

7.1       The Theory of Joins in Relational Databases                                                        460
By A. V. Aho, C. Beeri, and J. D. Ullman

7.2      Organization and Maintenance of Large Ordered Indexes                                478
By R. Bayer and E. Mccreight

7.3      The Entity Relationship Model - Toward A Unified View of Data           494

By Peter Pin-Shan Chen

7.4      A Relational Model of Data for Large Shared Data Banks                                519
By E. F. Codd

Section 8    Artificial Intelligence and Robotics

8.1      Steps Toward Artificial Intelligence                                                                              541
By Marvin L. Minsky

8.2    Matter, Mind, and Models                                                                             580
By Marvin L. Minsky

8.3      Fusion, Propagation, and Structuring in Belief Networks                                     586
By Judea Pearl

8.4        Computing Machinery and intelligence                                                                 628
By A. M.Turing

Section 9     Human-Computer Communications

9.1      Programming Considered as a Human Activity                                   648
By Edsger W. Dijkstra

Section 10   History

10.1    Programming in America in the 1950s-                                               665
Some Personal Impressions
           
By John Backus

10.2    The Evolution of Data-Base Management Systems                           663
By James P. Fry and Edgar H. Sibley

10.3    The Evolution of the UNIX Time-Sharing System                               707
By Dennis M. Ritchie