Abstract: We are beginning an ambitious programme of research into the Foundations of Computer Science. This isn't to say that we are beginning to study the theory of computation; this has been going on fruitfully for many years. Nevertheless, the particular programme which we have put forward is a new kind of exercise. What makes it new is a central commitment to a double thesis: that the design of computing systems can only properly succeed if it is well grounded in theory, and that the important concepts in a theory can only emerge through protracted exposure to application.
If we take this commitment seriously, then we must make an organised attempt to unite the development of theory with its experimental application. That is why I chose a title for this lecture which, in its truly philosophical sense, I am not well equipped to answer. All the same, people involved with a developing subject ought to ask themselves difficult questions about what it is they are developing, even if the final answers are beyond them. For myself, I became committed to the inseparability of theory from experiment in the course of doing Computer Science, not through philosophical enquiry. But in this lecture I want to justify the commitment, by looking at some examples of how ideas and application have developed side-by-side. After all, however deep a philosophical study you wish to conduct, you must always support it by examples of scientific practice. By the time I have finished, I hope you will at least agree that the question ``Is computing an experimental science?'' is both fascinating and intricate. Whatever the answer, I hope even more that you will be convinced that our commitment to unite theory with application, and the research which we plan on the basis of this commitment, are both inevitable in the process of establishing firm foundations for computing as a science.
LFCS report ECS-LFCS-86-1, 1986.
This report is available in the following formats: