Friday, February 20, 2009

Computer Science and "Geschichtsvergessenheit"

Yesterday, a friend working at a German university told me over ICQ that for most of his students the name Niklaus Wirth didn't ring a bell. I was mildly shocked, and we ranted (ironically) a bit about today's students' being undereducated and ignorant and all. Eventually, we came up with a quickly and superficially assembled list of some more persons that we think one should know if they're into computer science: Alan M. Turing, Grace Hopper, Ada Lovelace, Edsger W. Dijkstra, David L. Parnas, and Konrad Zuse. Some of these might have been chosen based on personal preference, but most of them undoubtedly have made significant contributions to computer science.

Let's face it: the practical outcomes of academic computer science tend to reoccur in cycles. Distributed systems of yore are somehow residing in the SOA/grid/cloud triangle these days, and concepts that have long been known are re-introduced and hyped with all the marketing power of globalised corporations. While this is typical for industry, it's unsettling that academia jumps on the bandwagon almost uncritically, generating massive amounts of publications at high speed that don't actually tell anything new. The seminal papers that have been published, in some cases, decades ago are mostly not even referenced in these.

I believe this is not a deliberate choice of the authors of said papers. Any academic worth their share will strive to give relevant related and previous work due credit. So what is it that brings this about? Why is computer science so geschichtsvergessen (unaware, if not ignorant, of (its own) history)?

Is it because many, too many, universities focus on teaching students the currently hyped programming language? Is it because education at academic institutions too often and too strongly concentrates on creating industry-compatible computer scientists operators? Is it because computer science education is not designed to be sustainable?

The above questions can, more or less obviously, be answered with yes—and that is sad. Not because students don't know the names of people that helped shape computer science in its early days; that, one could do with. It is much more problematic that ignorance (be it deliberate or not) of previously achieved important, crucial results leads to too much work being done over and over again. It's reinventing the wheel on a large scale.

Most academic disciplines I know of introduce their students to the historical background and development of their subject early in the curriculum. Students of economic science learn about mercantilism, Smith, Keynes, and Friedman early on; and prospective jurists are soon faced with the Roman legal system and its numerous influences on contemporary legal systems. Why does a computer science curriculum start, ironically exaggerated, with a darned Java programming course?

It's the teachers' job to change this. Still, they often themselves don't know their ancestors (and I am not an exception myself). Information is available. Two pointers that spring to mind are these:
  • Friedrich L. Bauer's small volume "Kurze Geschichte der Informatik" (sorry, I don't know if it's available in English) connects computer science to its roots in mathematics and philosophy and depicts its historic development until the early 1980s (sadly, it stops there).
  • The volume "Software Pioneers" edited by Manfred Broy and Ernst Denert collects reprints of seminal papers by various computer science pioneers. It comes with 4 DVDs (!) containing videos of talks of most of these persons, who were gathered at a Software Pioneers Conference in Bonn (Germany) in 2001.
Please, let's not forget where we come from, aye?

No comments:

Post a Comment