You are here:

Know Your Discipline: Teaching the Philosophy of Computer Science

, University of Joensuu, Finland

JITE-Research Volume 6, Number 1, ISSN 1539-3585 Publisher: Informing Science Institute


The diversity and interdisciplinarity of computer science and the multiplicity of its uses in other sciences make it hard to define computer science and to prescribe how computer science should be carried out. The diversity of computer science also causes friction between computer scientists from different branches. Computer science curricula, as they stand, have been criticized for being unable to offer computer scientists proper methodological training or a deep understanding of different research traditions. At the Department of Computer Science and Statistics at the University of Joensuu we decided to include in our curriculum a course that offers our students an awareness of epistemological and methodological issues in computer science, and we wanted to design the course to be meaningful for practicing computer scientists. In this article the needs and aims of our course on the philosophy of computer science are discussed, and the structure and arrangements—the whys, whats, and hows—of that course are explained. The course, which is given entirely on-line, was designed for advanced graduate or postgraduate computer science students from two Finnish universities: the University of Joensuu and the University of Kuopio. The course has four relatively broad themes, and all those themes are tied to the students’ everyday work or their own research topics. I have prepared course readings about each of those four themes. The course readings describe, in a compact and simple form, the cruces of the topics that are discussed in the course. The electronic version of the course readings includes hyperlinks to a large number of articles that are available on-line. The course readings are publicly available on the course home page, and they are licensed under the creative commons license. The first theme in the course is centered around a fundamental question—What is computer science? Students are introduced to the disciplinary history of computer science, to a number of characterizations of computer science made by the pioneers of the discipline, and to some methodological and epistemological viewpoints on computer science. The second theme is centered around the question—What is science? Students are introduced to, for instance, the concepts of pure and applied science, “hard” and “soft” sciences, the aims of science, the scientific method, scientific reasoning, the formation of scientific concepts and theories, and the Science Wars. The third theme concerns the division of computer science into its theoretical, engineering, and empirical traditions. The lecture notes introduce the students to descriptions of computer science that emphasize the mathematical tradition over other traditions and to descriptions that emphasize engineering or empirical traditions. The fourth theme is the philosophy of science. Throughout the course terminology of the philosophy of science is used, and the students are introduced to a number of central issues in the philosophy of science, to some of the most notable schools in the philosophy of science, and to some critical views of science. This course is aimed at providing a broad understanding of the different traditions of computer science, of the methodological differences between the branches of computer science, of the strengths and limitations of the different traditions in computer science, and of how the philosophy of science can be of help to computer scientists. In the course, critical reading and well argumented writing are encouraged. The students learn that there are many problems that do not have clear-cut answers; they learn that there are many open problems where multiple incompatible, yet credible viewpoints can be defended. The students also learn to articulate their own positions, to defend those positions, to comment and criticize other positions, and to reflect and rethink their positions according to criticism. The students also get the chance to think about the intellectual foundations of their own work and their own research studies.


Tedre, M. (2007). Know Your Discipline: Teaching the Philosophy of Computer Science. Journal of Information Technology Education: Research, 6(1), 105-122. Informing Science Institute. Retrieved November 20, 2019 from .



View References & Citations Map

These references have been extracted automatically and may have some errors. Signed in users can suggest corrections to these mistakes.

Suggest Corrections to References