History in the computer science curriculum: part II

I n the last column I posed the rhetorical questions: All teaching is, in effect, a *, ¥ teaching o f history. Can history be effectively used as a tool in teaching "modem" computer science? In my travels I find that very few of our teachers either in our K-12 school system or our institutions of tertiary education know anything of our history beyond the latest version of the Intel processor. What anecdotes that they possess are generally incorrect and promote myths about the field that commonly support the "nerd" stereotype. They neither appreciate the genealogy of hardware and software nor the contributions of our pioneers. Without this background they cannot supplement their teaching with history. But then it is improper to blame our current teachers for their lacking when they were not a party to an education which used history as a teaching tool. So where do we start? We have to provide a resource from which our teachers can draw a stock of tools to enhance their teaching. Even those of us who have worked in the field of the history of computing for decades started at the same point, though we had the advantage in the 1970s that many of our pioneers were still alive, and even some o f our early machines were still around. Today we need secondary resources to support our teachers. Courses in the history o f technology in history depart-. ments of our universities often contain a segment on the impact o f the computer on society. While this is effective in the province of the study of the history ofteclmology, it adds little to the understanding of the story o f the computer itself. Some departments of history reject the idea of studying the history of computing as a "work in progress," and terminate the study of the history of mathematics with the pioneers o f the early part o f the 20th century. Contemporary history is the activity that allows us to look behind us and to recognize, in their lifetime, our pioneers and their contributions. At the same time the delay between the instant of the innovation and the date of review allows us to view history from a reasonable distance to increase our objectivity, to improve our ability to compare against parallel developments, and to recognize the downstream impact on today's technology. In the early days of studying our own history, simple preservation activities produced what we believe is best termed "Chronological History" since the results tended to be elementary lists of events with an emphasis on "firsts" such as have been frequently published in several journals and magazines on the occasion of a special anniversary. Starting with the first ACM SIGPLAN History of Programming Languages Conference in 1978 (Wexelblat, 1981), two years later than the Los Alamos conference (Metropolis et al, 1980), a real effort was put forward to follow Hamming's admonition that "we would know what they thought when they did it" (Metropolis, p. 3).* In this endeavor the pioneers of thirteen programming languages were asked to write papers which looked beyond the simple chronology of development. The result was then much more than simply a listing o f the events that led to the implementation o f the language, but also included the rationale for the decisions and a better feel for the environmental factors which influenced those decisions. In the main, the papers were still accounts of successes of innovation. The Second History of Programming Languages Conference in 1993 continued and extended on this beginning so as to produce a second set o f papers on the programming languages of the 1970's and early 1980's. These question banks are not intended to create papers by merely collecting the answers; but they serve as prompts to incite memories about events that otherwise would be suppressed or ignored. Yet these are the very historical vignettes that serve to educate readers and inspire new concepts. For example, I have found that the . short descriptions of the programming languages contained in the proceedings of both the ACM conferences on the his" tory ofprogramrning languages (Wexelblat 1981 and Bergin 1996) are an excellentl~asis for the quick study of languages in a comparative language course. For example, the LISP "miero-manuaI" in Wexelblat (1981) presents an excellent mini-language that forces students to write programs unencumbered (enhanced?) by the simplifying constructs of later versions o f the language and its successor languages. Perhaps we should suggest that ACM reprint these short language descriptions in a monograph that would be more available to students. Returning to Richard Hamming's counsel, we must ask why it is important to understand the background of innovation and development. In fact, little of our literature or open records contains information on the motivation, the innovation, and the decision making that led to commercial products, to new methodologies, and significant research results. Personal interactions drive people; people make decisions;