"This superb book addresses fundamental issues for developing insight into the nature of CS as distinct from other physical sciences, engineering, or mathematics." (Shapiro, Computing Reviews, July 15, 2019)
Part I, Introduction.- Computer Science.- Towards a Philosophy of Computer Science.- Part II, Ontology.- Computational Artifacts.- Logic Machines as Technical Artifacts.- The Ontology of Programs.- Software Systems as Technical Artifacts.- Part III, Semantics.- The Languages of Computer Science.- Programming Languages.- Semantic Requirements.- Semantic Varieties.- Semantics and Implementation.- Specification Languages.- Part IV, Methodology: Software Development.- Software System Methodology.- Specification.- The Philosophy of Design.- Simplicity in Design.- Modularity.- Formal Methods.- Part V, Methodology II: The Design of Programming Languages.- Simplicity and Expressive Power.- Semantics and Design.- Computational Abstraction.- Part VI Epistemology.- Varieties of Correctness.- Program Correctness.- Types and Correctness.- Artifact Correctness.- Computational Explanation.
Raymond Turner is an emeritus professor of the School of Computer Science and Electronic Engineering of the University of Essex. His research interests include theoretical computer science, mathematical logic, philosophical logic, philosophy of mathematics, and the philosophy of computer science.
The philosophy of computer science is concerned with issues that arise from reflection upon the nature and practice of the discipline of computer science. This book presents an approach to the subject that is centered upon the notion of computational artefact. It provides an analysis of the things of computer science as technical artefacts. Seeing them in this way enables the application of the analytical tools and concepts from the philosophy of technology to the technical artefacts of computer science.
With this conceptual framework the author examines some of the central philosophical concerns of computer science including the foundations of semantics, the logical role of specification, the nature of correctness, computational ontology and abstraction, formal methods, computational epistemology and explanation, the methodology of computer science, and the nature of computation.
The book will be of value to philosophers and computer scientists.