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, Software Development.- Software System Methodology.- Specification.- The Philosophy of Design.- Simplicity in Design.- Modularity.- Formal Methods.- Part V, Methodology 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.