To the non-initiated, it might seem there is little overlap between philosophy as an academic discipline and computer science broadly construed. This is a misconception.
Most obviously, professional philosophers and computer scientists meet on matters of ethics. In particular, there is a growing interest in machine ethics — a subfield of ethics concerned with the moral value of actions performed by an artificial intelligence. Although machine ethics in itself is not a new field, it has become especially popular in recent years, following the development of technologies such as self-driving cars. This popularity is fully deserved. Unfortunately, it also tends to obfuscate the other contributions of contemporary philosophy to computer science.
These contributions include inquiries into the nature of such entities and concepts as programs, algorithms and the hardware/software distinction. For example, there is a long-standing philosophical debate about the nature of AI, an iconic (and easily accessible to non-specialists) piece of which is Searle’s infamous Chinese Room argument. Other major contributions come from philosophy of language and philosophical logic — two fields at the core of academic philosophy since the beginning of the twentieth century. These disciplines notably laid the foundation for modal, tensed and fuzzy logics, which are instrumental for computer science.
The importance of philosophy for computer science does not stop there. In addition to purely philosophical results that turned out to be useful, there are philosophical practices that explicitly aim to solve a practical issue faced by computer scientists. A good example is applied ontology.
Very roughly, the goal of applied ontology is to facilitate the treatment and exchange of data. It does so by providing a general and content-neutral structure, known as a formal (or top-level) ontology. This structure is then implemented as a standard framework, thus enhancing compatibility between databases. Formal ontologies are widely used in biomedical research, among other domains.
What is the role of philosophy here? Successful formal ontologies must provide a highly general and topic-neutral model of reality. As it happens, this task is precisely one philosophers have undertaken at least since Plato. For example, in some formal ontologies, entities are divided between material and immaterial ones, a distinction central throughout Western philosophy. Of course, to be useful, a formal ontology must be developed ‘from the bottom-up’. Thus, formal ontologies are built hand-in-hand with data scientists as well as with the eventual users, e.g. biomedical engineers.
Philosophy as an academic discipline is far from the conservative, isolated and somewhat obscure realm it is sometimes taken to be. This is perhaps nowhere more evident than in its relationship with computer science. Here, philosophy is not limited to the role of an idle observer. On the contrary, through both fundamental research and practical application, philosophy played a crucial role in the inception of computer science. It will continue to play this role as computer science mature and grows.