Principal contributions in computing until 1990:
Computing: A Human Activity


Principal contributions are collected in:

Computing: A Human Activity -- Selected Writings From 1951 To 1990
ACM Press/Addison-Wesley, New York, 1992, 630 p. ISBN 0-201-58069-1

CONTENTS
Foreword
Preface
1.UNDERSTANDING THE HUMAN ACTIVITY OF COMPUTING
1.1The Place of Programming in a World of Problems, Tools and People (1965)
Introduction. Problems, Tools, and People. Programming Languages. Machine Characteristics. List Processing. COBOL. ALGOL and Common Programming Languages.
1.2Data and Their Applications (1974)
1.2.1 Data and What They Represent. 1.2.2 Data Processes and Models. 1.2.3 Data Recognition and Context. 1.2.4 Data Representations. 1.2.5 Numbers and Numerals. 1.2.6 Data Conversions. 1.2.7 Data Processing. 1.2.8 A Basic Principle of Data Science. 1.2.9 Limitations of Data Processing. 1.2.10 Summary of the Chapter. 1.2.11 Exercises.
1.3Programming Languages, Natural Languages, and Mathematics (1975)
Abstract. 1.3.1 Introduction. 1.3.2 Pure and Applied Mathematics. 1.3.3 Programming Languages and Natural Languages. 1.3.4 Language Quality. 1.3.5 Artificial Auxiliary Languages. 1.3.6 FORTRAN and COBOL as Given Facts of Life. 1.3.7 Language and Literature. 1.3.8 Descriptive and Prescriptive Attitudes to Language. 1.3.9 Conclusion.
1.4Programming As Theory Building (1985)
Abstract. 1.4.1 Introduction. 1.4.2 Programming and the Programmers' Knowledge. 1.4.3 Ryle's Notion of Theory. 1.4.4 The Theory To Be Built by the Programmer. 1.4.5 Problems and Costs of Program Modifications. 1.4.6 Program Life, Death, and Revival. 1.4.7 Method and Theory Building. 1.4.8 Programmers' Status and the Theory Building View. 1.4.9 Conclusions.
1.5Computing and the So-Called Foundations of the So-Called Sciences (1990)
Abstract. 1.5.1 Introduction. 1.5.2 Words and Science. 1.5.3 So Called Foundations of the Sciences. 1.5.4 Scientific Aspects of Computing. 1.5.5 Some General Theorems About Computing. 1.5.6 Consequences for the Teaching of Computing.
2.ALGOL 60 AND PROGRAMMING LANGUAGES
2.1Contributions to ALGOL 60 (1959-60)
2.1.1 From ALGOL Bulletin no. 3, 1959 June 8. 2.1.2 ALGOL 60. Draft report by Peter Naur, Regnecentralen, Copenhagen, 1960 Jan. 9. Description of the reference language. 2.1.3 Excerpts from Report on the Algorithmic Language ALGOL 60. 1960 March 2.
2.2Successes and Failures of the ALGOL Effort (1968)
Abstract.
2.3Aad van Wijngaarden's Contributions to ALGOL 60 (1981)
Abstract.
2.4Programming Languages--Status and Trends (1972)
Abstract. The Complexity of the Situation. Operating Systems. Research Efforts. Performance Studies--the Big Void. Conclusions.
2.5Review of John Backus: Can Programming Be Liberated From the Von Neumann Style? A Functional Style and Its Algebra of Programs (1978)
3.COMPILER CONSTRUCTION AND DATA PROCESSING
3.1The Design of the Gier ALGOL Compiler (1963)
Abstract. 3.1.1 Introduction. 3.1.2 Background of the Project. 3.1.3 The Running System. 3.1.4 Multipass Translation. 3.1.5 Translator Methodology. 3.1.6 Size and Performance.
3.2Checking of Operand Types in ALGOL Compilers (1965)
Abstract. Introduction. The Problem. Pseudo Evaluation. Checking During Conversion. Checking Conditional Expressions. Handling of Errors. Classification and Representation of Operands. Example of Error Messages.
3.3Certification of Algorithms (1963)
Remarks on and Certification of Algorithm 50: Inverse of a Finite Segment of the Hilbert Matrix . Certification of Algorithms 120 and Matrix Inversion by Gauss Jordan, INVERSION II and gjr. Correction to Earlier Remarks on Algorithm 42 INVERT. 107 Gauss's Method. 120 INVERSION II, and gjr.
3.4Organizing the Use of Multi Level Stores (1965)
Background. The Systems Tape. Translation. Execution of Compiled Programs. Conclusions.
3.5Program Translation Viewed As a General Data Processing Problem (1966)
Abstract. Background. General Attitude. Logical Structure of Translators. Reliability of Translators. Data Processing Techniques of Translators. Background and New Convention Oriented Programs. Empty Options. Default Conventions. Structure Versus Reference. Richness and Power. Conclusions.
4.THE PHILOSOPHY OF HOW TO TEACH COMPUTING
4.1Datalogy and Datamatics and Their Place in Education (1966)
4.2Outline of a Course of Datalogy and Datamatics (1966)
Preface. 4.2.1 Context and Form. 4.2.2 The Concepts of Datalogy and the Methodology of Datamatics. 4.2.3 Processing of Single Data Elements. 4.2.4 Intermediate Amounts of Data. 4.2.5 Communication Between Man and Datamaton. 4.2.6 Large Amounts of Data. 4.2.7 Designing Large Datamatic Programs.
4.3The Science of Datalogy--Letter to the Editor (1966)
4.4Datalogy, the Science of Data and Data Processes, and Its Place in Education (1968)
4.4.1 Computer Science and Datalogy . 4.4.2 The Concepts of Data and Data Processes . 4.4.3 Outline of a Course of Datalogy. 4.4.4 Critique of the ACM Curriculum . 4.4.5 Progress Report.
4.5Project Activity in Computer Science Education (1970)
Introduction. What Project Activity Is. Projects in Computer Science. Problem Solving. Design Techniques. Project Documentation and the Design Process. The Typewriter As a Tool in Documentation. Use of Check Lists. The Need For Group Work. Introducing Project Work in Higher Education. Guidance of Project Work Via the Evaluation Procedure. Students' Mutual Evaluation. Automatic Grading of Programs. Evaluation of Group Work. Conclusion.
4.6Plans and Ideas for an Institute of Datalogy at Copenhagen University (1970)
4.6.1 Section Headings of Report on Institute. 4.6.2 Excerpts of Full Text.
4.7Datalogy Zero--a Freshman Course of Computer Science (1974)
Course Goals. Projects. Course Contents and Materials. Organization and Resources. Experience.
4.8Writing Reports--a Guide (1976)
4.8.1 Aim and Justification. 4.8.2 The Contents of Reports.
4.9Computer Science in High School--Letter to the Editor (1980)
4.10Programming of a Well Understood Task (1981)
4.10.1 Introduction. 4.10.2 Problem Analysis. 4.10.3 Guide to the User. 4.10.4 Testing. 4.10.5 Program Description. 4.10.6 SIM8080 Program Text.
4.11Blind Alleys in University Computing (1983)
5.RELIABLE AND ORDERLY PROGRAMMING
5.1Go To Statements and Good ALGOL Style (1963)
5.2Proof of Algorithms by General Snapshots (1966)
Abstract. Introduction. The Meaning of Proof. Snapshots. General Snapshots. Exhaustive Enumeration of Entry and Exit Conditions. External Parameters of a Process. Construction of Algorithms.
5.3Programming by Action Clusters (1969)
Abstract. 5.3.1 Introduction. 5.3.2 Construction for Satisfying Global Requirements. 5.3.3 Example Part 1: Line Editing Problem. 5.3.4 Example Part 2: Forming the Action Clusters. 5.3.5 Example Part 3: Constructing the Final Program. 5.3.6 Relation to Proving by General Snapshots. 5.3.7 Relation to Programming Languages.
5.4Problem Formulation--the Fertile Soil of the Software Development Project (1971)
Problem Formulation--What It Is. Reporting of Reasons. Problems of Language. Problems--Tools--People. Weighing of Ideas. Periodic Revision of the Problem Formulation. What Must the Manager Know About Electronic Data Processing--and the Data Processing People About Management?.
5.5Design and Development of Large Data Systems (1974)
5.5.1 Controversial Issues of Large Data Systems. 5.5.2 The Management View of the Large Data System Project. 5.5.3 Overall Design and the Experimental Attitude. 5.5.4 The Human Feedback. 5.5.5 Techniques of Problem Solving and Large System Design. 5.5.6 Documentation of Large Data Systems. 5.5.7 Documentation of Computer Operation. 5.5.8 Design Decisions of Large Data Systems. 5.5.9 Experiments as Part of the Design Process. 5.5.10 Design Check Points. 5.5.11 Summary of the Chapter. 5.5.12 Exercises.
5.6Control Record Driven Processing (1977)
Abstract. 5.6.1 Introduction. 5.6.2 Symbol Transliteration. 5.6.3 String Conversion Based on Finite State Transducer. 5.6.4 Conversion to Postfix Form in Compilers. 5.6.5 Applicability and Development of Design. 5.6.6 Problem and Solution Structure. 5.6.7 The Language of Control Records. 5.6.8 Representing the Control Records. 5.6.9 Execution Time Efficiency. 5.6.10 Proof and Testing of Control Record Driven Solutions.
5.7Software Reliability (1977)
Abstract. Introduction. Reliability Situation Cases. The Complexity of Software Reliability. Reliability and Human Expectations. Reliability and Correctness of Software. Reliability as Related to Systems Controlled by Software. Stochastic Elements of Software Systems. Quantification of Software Reliability. Stability of Software Systems. Reliable Software Design Policies. Conclusions.
5.8Diminishing Returns of User Programming (1978)
Abstract. Introduction. The Levels of Computers and Their Software. Problems of Levels in Application Programming. Programming Aspects of Human Enterprises. Benefits of Computerized Solutions. Conclusions.
5.9Prospects for the Programming Methodologies (1981)
Abstract. Introduction. Review of Programming Methodologies. Criticism of Current Methodologies. The Work Style of Journalists. The Making of Encyclopaedias. Problem Solving. Discussion.
6.PROGRAMMING STUDIED EMPIRICALLY
6.1An Experiment on Program Development (1972)
Abstract. 6.1.1 Introduction. 6.1.2 Eight Queens--Thinking at the Typewriter. 6.1.3 Discussion. 6.1.4 Conclusion.
6.2An Empirical Approach to Program Analysis and Construction (1981)
Abstract. 6.2.1 Introduction. 6.2.2 Implicit Notions of Quality. 6.2.3 The Choice of Simple Variables. 6.2.4 Program Skeleton as Analytic Tool . 6.2.5 Overall Revision of a Program. 6.2.6 Discussion. Conclusions.
6.3Program Development Studies Based on Diaries (1983)
6.3.1 Introduction. 6.3.2 Programming of a Well Known Task. 6.3.3 Program Correctness. 6.3.4 Problem Analysis Work Mode. 6.3.5 Results of the Diary Analysis.
7.INTUITION AND FORMALIZATION IN PROGRAM DEVELOPMENT
7.1Formalization in Program Development (1982)
Abstract. 7.1.1 Introduction. 7.1.2 Specifications, Formalization, and Mathematics. 7.1.3 Correctness and Abstraction in Programming. 7.1.4 Notes on a Description of ALGOL 60. 7.1.5 Neglect of Informal Precision and Disdain of Intuition. 7.1.6 Neglect of Simple Formalizations. 7.1.7 Psychology of Formalization and Specification. 7.1.8 Specifications for Human Understanding.
7.2Intuition in Software Development (1985)
Abstract. 7.2.1 Introduction. 7.2.2 The Notion of Intuition. 7.2.3 Successes and Failures of Intuitive Insight. 7.2.4 Bounding the Failures of Intuition. 7.2.5 Intuition, Scales, Logic, and Correctness. 7.2.6 Intuition and Text. 7.2.7 Reasoning, Proof, and Intuition. 7.2.8 Data Models of Human Activity. 7.2.9 Software Development. 7.2.10 Software Development Methods and Intuition. 7.2.11 Conclusions.
7.3Review of J.-R. Abrial: Specification or How to Give Reality to Abstraction (1986)
7.4Review of R. L. Schwartz and P. M. Melliar-Smith: From State Machines to Temporal Logic: Specification Methods for Protocol Standards (1986)
7.5The Place of Strictly Defined Notation in Human Insight (1989)
Abstract. 7.5.1 Introduction. 7.5.2 Strictly Defined Notation. 7.5.3 Constructed Models Built From Symbols. 7.5.4 Programming Logic and Informal Issues.
8.COMPUTING AND HUMAN UNDERSTANDING
8.1The Electronic Computer and the Brain (1954)
8.2Thinking and Turing's Test (1986)
Abstract. 8.2.1 Introduction. 8.2.2 Turing's Question as an Expression in Normal Language. 8.2.3 Thinking as a Basic Concept of Psychology. 8.2.4 Thinking as an Intellectual Activity. 8.2.5 Turing's Imitation Game. 8.2.6 Critique of Turing's Notion of Thinking. 8.2.7 Conclusion.
8.3Review of D. Michie: Machine Intelligence and Related Topics (1985)
8.4Programming Languages Are Not Languages--Why 'Programming Language' Is a Misleading Designation (1988)
Language and Knowledge. What is Language?. Language and Speech. Homonyms. Sound and Meaning. Meaning and Imagination. How Far Do We Understand One Another?. Are Programming Languages Languages?.
8.5Review of Y. Shoham: Reasoning About Change: Time and Causation From the Standpoint of Artificial Intelligence (1989)
Author's Rebuttal to This Review. Reviewer's Response to the Rebuttal.
8.6Causes and Human Expectations and Intents (1989)
Abstract.
8.7Human Knowing, Language, and Discrete Structures (1988)
8.7.1 Why a Computer Scientist Concerns Himself With Human Knowing and Language. 8.7.2 Knowing and Language. 8.7.3 Non verbal Knowing Versus Rules. 8.7.4 Metaphors for a Person's Knowing. 8.7.5 Formalization and Comprehension. 8.7.6 Consequences About Getting To Know.
9.COMPUTERS AND SOCIETY
9.1Computers and Society (1967)
9.1.1 The History of Computers From Pascal Until Today. 9.1.2 Datalogy--the Science of Data. 9.1.3 The Structure and Manner of Operation of Computers. 9.1.4 Programming--the Key to the Flexibility of Computers. 9.1.5 The Applications of Computers Today. 9.1.6 Future Perspectives.
9.2The State of Computing 1970 (1970)
When the Computers Were Put Into Use, Too Many People Forgot That Innovation Depends on Changes of Established Modes. Man Sets the Tempo. Production of Computers. I/S Datacentralen. Taxation at the Source. Fundamental Howler. Lack of Insight. Institutions of Advanced Education. Entirely Illusory. Conviction Lacking. EDP in the Schools. The Role of the Government. Postscript.
9.3Top Speed--Right Into the Abyss (1971)
9.4The Impact on Society of Computers in Education (1975)
Abstract. 9.4.1 Introduction. 9.4.2 Computers in Administration of Education. 9.4.3 The Computer as a Teaching Device. 9.4.4 The Computer Used As a Tool for Fields of Empirical Study. 9.4.5 Computers as Objects of Study in Their Own Right. 9.4.6 Overall Impact.
9.5Man Is Not a Machine--and Vice Versa (1984)
Abstract.
10.ROOTS
10.1Autobiographical Notes (1990)
10.2Computation of Special Perturbations by an Electronic Calculator (1951)
Summary. Description of the Process. Accuracy. Circular Motion. Free Fall From Infinity. The Operation of the Machine. The Planet Tapes. The Speed of the Process.
10.3Regnecentralen and ALGOL 60 (1976)
10.4Niels Ivar Bech, the Man Who Created Regnecentralen (1971)
10.5Obituary of Niels Ivar Bech, 1920 August 22 1975 July 25 (1975)
Alphabetic Index