Philosophy of Engineering and Artifact
in the Digital Era

an exploratory workshop

2009 February 6-8
“Stefan cel Mare” University of Suceava

Raymond Turner

Towards A Philosophy of Computer Science

The Philosophy of Computer Science is concerned with philosophical issues that arise from reflection upon the nature and practice of the academic discipline of Computer Science ( CS ). But what is the latter? It is certainly not just programming. After all, many people who write programs are not computer scientists.

For example, physicists, accountants and chemists write programs. Indeed, computer science would be better described as being concerned with the meta-activity that is associated with programming. More generally, and more precisely, it is occupied with the design, development and investigation of the concepts and methodologies that facilitate and aid the specification, development, implementation and analysis of computational systems.

Examples of this activity might include the design and analysis of programming, specification and architectural description languages; the construction and optimisation of compilers, interpreters, theorem provers and type inference systems; the invention of logical frameworks and the design of embedded systems, and much more. While one can argue about the exact phrasing of this characterisation of the discipline, its spirit seems to capture a core aspect of it.

Certainly, many of the central philosophical questions of CS surround and underpin this activity, and many of them centre upon the logical, ontological and epistemological issues that concern it. However, in the end, computer science is what computer scientist do, and no exact formulaic definition can act as more than a guide to the discussion that follows. Indeed, the hope is that PCS will eventually contribute to a deeper understanding of the nature of the computer science.

In this talk we shall survey some of the central philosophical questions of the discipline and link them with parallel questions in the philosophies of mathematics, language, science and engineering. We shall explore philosophical concerns that surround the semantics of programming languages, the nature of correctness proofs, the status and nature of computational knowledge, the scope of the Church-Turing thesis and the relationship between computation and deduction.

In particular, we shall examine the motives for programming language semantics and how its goals differ to parallel ones in the philosophy of language. We shall analyse the nature of correctness proofs and examine their epistemological status. Finally, we shall discuss the relationship between computational and mathematical thinking.

Here is the ppt file