Using History to Teach Computer Science and Related Disciplines
Total Page:16
File Type:pdf, Size:1020Kb
Computing Research Association Using History T o T eachComputer Science and Related Disciplines Using History To Teach Computer Science and Related Disciplines Edited by Atsushi Akera 1100 17th Street, NW, Suite 507 Rensselaer Polytechnic Institute Washington, DC 20036-4632 E-mail: [email protected] William Aspray Tel: 202-234-2111 Indiana University—Bloomington Fax: 202-667-1066 URL: http://www.cra.org The workshops and this report were made possible by the generous support of the Computer and Information Science and Engineering Directorate of the National Science Foundation (Award DUE- 0111938, Principal Investigator William Aspray). Requests for copies can be made by e-mailing [email protected]. Copyright 2004 by the Computing Research Association. Permission is granted to reproduce the con- tents, provided that such reproduction is not for profit and credit is given to the source. Table of Contents I. Introduction ………………………………………………………………………………. 1 1. Using History to Teach Computer Science and Related Disciplines ............................ 1 William Aspray and Atsushi Akera 2. The History of Computing: An Introduction for the Computer Scientist ……………….. 5 Thomas Haigh II. Curricular Issues and Strategies …………………………………………………… 27 3. The Challenge of Introducing History into a Computer Science Curriculum ………... 27 Paul E. Ceruzzi 4. History in the Computer Science Curriculum …………………………………………… 33 J.A.N. Lee 5. Using History in a Social Informatics Curriculum ....................................................... 39 William Aspray 6. Introducing Humanistic Content to Information Technology Students ……………….. 61 Atsushi Akera and Kim Fortun 7. The Synergy between Mathematical History and Education …………………………. 85 Thomas Drucker 8. Computing for the Humanities and Social Sciences …………………………………... 89 Nathan L. Ensmenger III. Specific Courses and Syllabi ………………………………………....................... 95 Course Descriptions & Syllabi 9. History in the First Course in Computer Science ……………………………………..... 95 J.A.N. Lee 10. History of Computing for Computer Science and Information Systems Students .… 109 Thomas J. Bergin and Jack Hyman 11. Enhancing Learning Using the History of Computing: Opportunities to Use History in an Introductory Computers and Information Course ……………………… 139 Thomas J. Bergin 12. An Introductory Informatics Course …………………………………………………….. 147 Mehmet M. Dalkilic 13. Engineering and Computer Science in Action: A Course on “The Structure of Engineering Revolutions” ……………………………………………………………….. 157 Eden Miller Medina and David A. Mindell Additional Course Syllabi 14. STS.035: From Analog to Agents: Introduction to the History of Computing ……… 167 (course syllabus) David A. Mindell 15. Informatics 303: Organizational Informatics …………………………………………... 175 William Aspray 16. Informatics 400/590: Internet and Society …………………………………………….. 179 William Aspray 17. Informatics 400/590: Privacy, Security, and Information Warfare ………………….. 185 William Aspray 18. HSSC120: Computer Learning for the Arts and Sciences …………………………... 193 Nathan L. Ensmenger 19. ITEC-1210: IT Revolution—Myth or Reality? …………………………………………. 197 Kim Fortun 20. ITEC-1220: The Politics and Economics of IT ………………………………………… 217 Atsushi Akera IV. Historical Case Studies for Computing and Information Systems Education …………………………………………………………….. 225 21. What Was the Question? The Origins of the Theory of Computation ……………… 225 Michael S. Mahoney 22. History in the Study of Computer Architecture ……………………………………….. 233 John Impagliazzo 23. Bringing Women into the Curriculum ………………………………………………….. 239 Jennifer S. Light 24. Human Computers and their Electronic Counterparts ………………………………. 245 David Alan Grier 25. Integrating Ethics into a Computing Curriculum: A Case Study of the Therac-25…. 255 Chuck Huff and Richard Brown V. Resources for Instructors ………………………………………………………… 279 26. Key Resources in the History of Computing …………………………………………. 279 Thomas Haigh 27. Resources for a Course on the History of Computing ……………………………… 295 Thomas J. Bergin and Jack Hyman Appendix 1. List of Additional Workshop Participants ………………………………………………309 ,,QWURGXFWLRQ 1. Using History to Teach Computer Science and Related Disciplines William Aspray Indiana University at Bloomington Atsushi Akera Rensselaer Polytechnic Institute This volume on using history to improve computing education came out of conversations that the first author had in 2000 with Andrew Bernat, the current executive director of the Computing Research Association who was then a program officer at the National Science Foundation, on leave from the University of Texas at El Paso. Andy and I had wide-ranging talks about various means for improving computer science education. He encouraged me to submit a proposal to NSF on using history to improve undergraduate computing education and talked with me on several occasions as I was preparing the proposal. Since Andy and I previously had written a report together, he was not permitted, under conflict-of-interest rules, to be the program officer for this proposal. The proposal was turned over to Harriet Taylor, who helped me through the proposal process. NSF awarded grant number DUE-0111938 to support this activity. The grant was used to hold two workshops: the first at Amherst College August 6-7, 2001, and the second at the University of Minnesota April 26-28, 2002.1 Each was attended by about forty people, primarily undergraduate teachers of computer science. The original plan for disseminating the results was to make a few presentations at meetings such as the annual ACM SIGCSE conference or the annual Frontiers in Education conference. The organizing committee’s frugality meant that attendees of the first workshop suffered through 100-degree weather in dorm rooms with no air conditioning, and attendees of the second meeting had to trek almost a mile through snowstorms to the meeting space. However, this frugality also meant that we had funds left over to collect and edit papers, publish them, and post them on a website where they could receive much wider dissemination than any workshop talk would achieve. In meetings held in Chicago in April 2004 and in Needham, Mass. in May 2004, the contributors to this volume met to critique one another’s papers. The contributors include most of those who spoke at one or both of the workshops, plus a few additional historians and computer scientists who were invited to submit papers. Professor Atsushi Akera of Rensselaer Polytechnic Institute, who was one of the workshop speakers, kindly offered to take principal responsibility for editing the publication. Jean Smith of the CRA staff has undertaken her usual exemplary work as the copyeditor for the volume, under a very tight set of deadlines. 1 The programs for those workshops can be found online at: http://www.cra.org/Activities/workshops/history/august01.html and http://www.cra.org/Activities/workshops/history/april02.html The volume itself is organized into five parts. Part I includes this introductory paper, followed by one by Professor Thomas Haigh that provides a basic introduction to the history of computing, as relevant to computer scientists and professionals. Part II assembles a set of papers addressing broader issues of curriculum development and strategy. Paul Ceruzzi opens this section with a reflective essay on the challenges of introducing history into a computer science curriculum. This is followed by J.A.N. Lee’s broad- based discussion about doing just this, especially in the context of the ACM/IEEE Computer Society’s jointly produced report “Computing Curriculum 2001,” which specifically calls for broadening a computer science student’s education.2 William Aspray describes his work in developing a broad, social informatics curriculum at the new School of Informatics at Indiana University in Bloomington. Atsushi Akera and Kim Fortun offer a complementary account of their efforts to develop a coherent curriculum in the humanities and social sciences for information technology (IT) students at Rensselaer. As well, Thomas Drucker provides an account of the classic synergy between the history of mathematics and mathematics education. In a way, history has been integrated into mathematics far more effectively than into computer science education, so his paper provides a good role model for more intensive interaction between history and computing-related disciplines. Lastly, Nathan Ensmenger describes a special program established at the University of Pennsylvania to provide basic computer literacy to non-computing majors within the School of Arts and Sciences. The premise of this work was that students in fields such as history, anthropology, and comparative literature were even more likely to benefit from using historical sources to develop a different kind of awareness about computing and information technologies. The papers in this section provide a surprisingly coherent picture of how historical materials can be incorporated into a computing curriculum. Moreover, in describing the curricular needs of computer science departments, information technology programs, and schools of social informatics as well as general arts and sciences, the papers collectively provide an account of the different approaches that need to be taken in supporting the different curricular needs of these programs. Part III of this volume provides a specific set of course descriptions and course syllabi. Rather than speaking abstractly about how to use history, we felt that a set of fully developed course descriptions