Know Your Discipline: Teaching the Philosophy of Computer Science
InSITE 2007 • Volume 7 • 2007
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.
philosophy of computer science, foundations of computer science, computer science education, course description
5329 total downloads