HOS 598

Spring 2003

Professor Michael S. Mahoney

The World of Software

Thurs. 9:00-12:00

Week 1: Introduction

On software:
M.S. Mahoney, "Issues in the History of Computing", in Thomas J. Bergin and Rick G. Gibson (eds.), History of Programming Languages II (NY: ACM Press, 1996), 772-81
Ulf Hashagen, et al. (eds.), History of Computing: Software Issues; in particular, M.S. Mahoney, "Software as Science -- Science as Software" with ensuing discussion

On the history of computing in general:
Martin Campbell-Kelly and William Aspray, Computer: A History of the Information Machine
Paul Ceruzzi, A History of Modern Computing

A valuable resource and indicator of the field:
Annals of the History of Computing

On technical issues:
Alan W. Biermann, Great Ideas in Computer Science: A Gentle Introduction
Charles Petzold, Code: The Hidden Language of Computer Hardware and Software

Week 2: Machines and Programs

Primary
 John von Neumann, "First Draft of a Report on the Edvac" (1945), ed. Michael D. Godfrey (pdf version); cf. M.D. Godfrey and D.F. Hendry, "The Computer as von Neumann Planned It", IEEE Annals of the History of Computing 15,1(1993) (pdf version)
Hermann Goldstine and John von Neumann, "Planning and Coding Problems for an Electronic Computing Instrument", in Papers of John von Neumann on Computing and Computer Theory, ed. Aspray and Burks
B.E. Carpenter and R.W. Doran (eds.), A.M. Turing's ACE Report of 1946 and Other Papers
Maurice Wilkes, David Wheeler, and Stanley Gill, The Preparation of Programs for an Electronic Computer (EDSAC); cf Martin Campbell-Kelly's EDSAC simulator with sample programs

Secondary and Supplemental
William Aspray, John von Neumann and the Origins of Modern Computing, Chaps.3, 5-7
N. Metropolis, J. Howlett, and Gian-Carlo Rota (eds.), A History of Computing in the Twentieth Century

Week 3: The First Programming Languages

Primary
An early manual for one of the following: FORTRAN, COBOL, Lisp, Algol.  (For online versions of some of these, see Karl Kleine's Historic Documents in Computer Science and Al Kassow's manual collection.)

Secondary
Richard Wexelblat (ed.), The History of Programming Languages (New York, 1980), Chaps. on FORTRAN, COBOL, Lisp, Algol.  Take a look at the other programming languages to get a sense of the range of the first important languages; cf. the volume of the same name edited by Thomas J. Bergin and Richard G. Gibson, Jr., (NY, 1996), which contains the papers from a second conference held in 1993.

Background and Supplemental:
Saul Rosen (ed.), Programming Systems and Languages  (NY, 1967) -  original papers on early languages and systems
Ellis Horowitz (ed.), Programming Languages: A Grand Tour (3rd. ed., 1987) -  more original papers on later developments
John Backus,  "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs", Communications of the ACM 21, 8 (1978), 613-641. (pdf)

Lisp:
Herbert Stoyan's History of Lisp
John McCarthy, Recursive Functions of Symbolic Expressions and their Computation by Machine (Part I) (the original paper, available at McCarthy's website)
John McCarthy, LISP---NOTES ON ITS PAST AND FUTURE---1980 (McCarthy's thoughts on 20th anniversary, a nice illustration of author's intention and readers' response)
For one designer's view see "Why Lisp?" for AutoCAD

Week 4: Languages and Development

 Primary
Noam Chomsky, "Three models of language", IRE Transactions in Information Theory 2,3(1956), 113-24 (xerox copies on shelf)
---, "Linguistics, logic, psychology, and computers",  Computer Programming and Artificial Intelligence: An Intensive Course for Practicing Scientists and Engineers, University of Michigan College of Engineering, 1958, 429-454 (xerox copies on shelf)
---, "On certain formal properties of grammars", Information and Control 2,2(1959), 137-167 (xerox copies on shelf)
John Backus, "The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference", Proc. Int'l Conf. on Informational Processing, UNESCO, Paris, 1959, 125-132 (xerox copies on shelf)
Stanislaw Ulam, "On some mathematical properties connected with patterns of growth of figures", Proceedings of Symposia on Applied Mathematics 14 (American Mathematical society, 1962), 215-224
Aristide Lindenmayer, "Mathematical models for cellular interactions in development", J. Theor. Biol. 18(1968), 280-99, 300-15 Cf. his L-systems (An L-system Tutorial)
Stephen Wolfram, "Computation Theory of Cellular Automata" Communications in Mathematical Physics 96(1984), 15-57; repr. in Wolfram, Theory and Application of Cellular Automata, 189-231 and online
David B. Searls, "The language of genes", Nature 420(11/14/2002), 211-217 and pdf

Secondary
Noam Chomsky, The Logical Structure of Linguistic Theory, 1-53 ("Introduction 1973")
Robert Friedin, "Conceptual Shifts in the Science of Grammar: 1951-1992", in Carlos P. Otero (ed.), Noam Chomsky: Critical Assessments
Sheila A. Greibach, "Formal languages: Origins and directions", Annals of the History of Computing 3,1(1981), 14-41 (xerox copies on shelf)
Michael S. Mahoney, The Structures of Computation, Chapter 4 (draft)

Supplementary
Przemyslaw Prusinkiewicz, Mark Hall, and Radomir Mech, Visual Models of Morphogenesis: A Guided Tour (online text with illustrations)
Noam Chomsky and George A. Miller, "Introduction to the Formal Analysis of Natural Languages", in Handbook of Mathematical Psychology [1963-5], ed. R.D. Luce, R.R. Bush, E. Galanter, Vol. 2, Chap. 11
Gilbert Harman (ed.), On Noam Chomsky: Critical Essays (NY, 1974)

Week 5: Artificial Intelligence: The Beginnings

Primary
Alan M. Turing, "Computing Machinery and Intelligence", Mind 59(1950), 433-60 
"Artificial Intelligence: A Debate" (John Searle vs. Paul and Patricia Churchland), Scientific American (January 1990), 25-37 
John McCarthy, Marvin Minsky, Nathaniel Rochester, Claude E. Shannon,  A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence(1956)  (pdf)
Marvin Minsky, "Steps Toward Artificial Intelligence", in Edward Feigenbaum and Julian Feldman, Computers and Thought (1963), 406-450.  (xerox copy on shelf - read for general argument; don't get bogged down in the technical details)
Herbert Simon, The Sciences of the Artificial, Chaps. 3-4
Joseph Weizenbaum, "ELIZA -- A Computer Program For the Study of Natural Language Communication Between Man and Machine", Comm. ACM 9,1(1966), 36-45 (pdf) (online implementation)

Secondary
Allen Newell, "Intellectual Issues in the History of Artificial Intelligence", in Fritz Machlup and Una Mansfeld (eds.), The Study of Information: Interdisciplinary Messages, 187-227 (xerox copy on shelf)
Seymour Paper, "One AI or Many?", Daedalus 117,1(Winter, 1988), 1-14 (xerox copy on shelf)

Background and Additional References
Edward Feigenbaum and Julian Feldman, Computers and Thought (1963) - a classic collection of early papers
Margaret A. Boden (ed.), The Philosophy of Artificial Intelligence (includes Turing's and Searle's papers)
Ronald Chrisley and Sander Begeer, Artificial Intelligence: Critical Concepts (Routledge, 2000) - an impressive anthology of the seminal literature on the subject; see contents

Hubert L. Dreyfus, What Computers Can't Do (Harper & Row, 1972) 
Joseph Weizenbaum, Computer Power and Human Reason: From Judgment to Calculation (San Francisco, 1976)
Marvin Minsky, The Society of Mind (Simon and Schuster, 1986) 
Harry M. Collins, Artificial Experts:  Social Knowledge and Intelligent Machines (MIT Press, 1990)
Daniel Crevier, AI: The Tumultuous History of the Search for Artificial Intelligence (Basic Books, 1993)

Week 6: Artificial Life

Primary
John von Neumann, On a logical and general theory of automata", in Cerebral Mechanisms in Behavior: The Hixon Symposium, ed. L.A. Jeffries (New York: Wiley, 1951), 1-31; repr. in Papers of John von Neumann on Computing and Computer Theory, ed. William Aspray and Arthur Burks (MIT, 1987), 391-431
Christopher Langton, "Artificial Life", in Margaret A. Boden (ed.)The Philosophy of Artificial Life, Chap. 1
Thomas S. Ray, "An Approach to the Synthesis of Life", ibid., Chap. 3; see the Tierra home page and get a copy of the software
John Maynard Smith, "Evolution -- Natural and Artificial" ibid., Chap. 5
Elliott Sober, "Learning from Functionalism -- Prospects for Strong Artificial Life", ibid., Chap. 14
Walter Fontana, Günter Wagner, Leo W. Buss, "Beyond Digital Naturalism", in Christoper G. Langton (ed.), Artificial Life: An Overview, 211-228 (online version)
Robert Rosen, "Church's Thesis and Its Relation to the Concept of Realizability in Biology and Physics", Bull. Math. Biophysics 24(1962), 375-393
-----, "Effective Processes and Natural Law", in Rolf Herken (ed.), The Universal Turing Machine:  A Half-Century Survey, 485-498

Secondary
Claus Emmeche, The Garden in the Machine: The Emerging Science of Artificial Life
B. Jack Copeland, "The Church-Turing Thesis", Stanford Encyclopedia of Philosophy (online)

Supplementary
John H. Holland, Hidden Order: How Adaptation Builds Complexity
Richard Doyle, On Beyond Living: Rhetorical Transformations of the Life Sciences, Chap. 7, "Emergent Power: Vitality and Theology in Artificial Life"
Stefan Helmreich, Silicon Second Nature: Culturing Artificial Life in a Digital World
John L. Casti, Alternate Realities: Mathematical Models of Nature and Man, Chap. 2

Week 7: Hypertext

Primary
Vannevar Bush, "As We May Think". That online copy has links, which are worth following out. The original article appeared in Atlantic Monthly for July 1945, and the magazine has also posted an online version. You will find a downloadable animation of the Memex at the Dynamic Diagrams Interactive Publications site.
J.C.R. Licklider, "Man-Computer Symbiosis", IRE Transactions on Human Factors in Electronics, HFE-1(1960), 4-11, and "The Computer as Communication Device", Science and Technology, April 1968 [reprints by Systems Research Center of DEC, Palo Alto; also availableonline]
Doug [Douglas C.] Engelbart, "The Augmented Knowledge Workshop", in A History of Personal Workstations (ed. Adele Goldberg; ACM Press, 1988), 185-232; cf. his "Augmenting Human Intellect: A Conceptual Framework", prepared for the Air Force Office of Scientific Research in 1962
Ted Nelson, Computer Lib/Dream Machines (1974; rev. ed., Tempus Books of Microsoft Press, 1987) - PU Library doesn't have a copy, but cf. Nelson's Xanadu page for an idea of what it and he are about.

"Hypertext",  Communications of the ACM 31,7(July, 1988), a special issue featuring papers from Hypertext '87, the first conference devoted to the subject; in addition to the introduction by the guest editors, John B. Smith and Steven F. Weiss, see the keynote by Andries van Dam, 887-895
Jerome McGann, "The Rationale of Hypertext"

Secondary
James M. Nyce and Paul Kahn, From Memex to Hypertext: Vannevar Bush and the Mind's Machine (Boston: Academic Press, 1991)
J. David Bolter, Writing Space: The Computer, Hypertext, and the History of Writing (Hillsdale, NJ: Erlbaum Associates, 1991)
George P. Landow,  Hypertext 2.0: The Convergence of Contemporary Critical Theory and Technology (Baltimore: Johns Hopkins U.P., 1997); for examples of hypermedia, go to his webpage and follow the links to his websites, among which is an extensive page on hypertext.

Supplementary
Howard Rheingold, Tools for Thought: The History and Future of Mind-Expanding Technology
On J.C.R. Licklider, see M. Mitchell Waldrop, The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal (NY: Viking Press, 2001); on his leadership of DARPA's Information Processing Technology Office, see Arthur L. Norberg and Judy E. O'Neill, Transforming Computer Technology: Information Processing for the Pentagon, 1962-1986 (Baltimore: Johns Hopkins University Press, 1996)

Week 8: Bioinformatics

History of Bioinformatics is the subject of an extensive online collection of primary and secondary sources compiled as a collaboration between historians of science and the scientists involved.  As an introduction to the subject and to the resources, see Timothy Lenoir, "Shaping Biomedicine as an Information Science", included among the secondary documents at the site.
Use the site to get a sense of the nature and structure of the major early projects, DENDRAL, MYCIN, AND MOLGEN (current version online)
Eric S. Lander, Robert Langridge, Damian M Saccocio, "Computing in Molecular Biology: Mapping and Interpreting Biological Information, Computer 24,11(1991), 6-13; another version in CommACM 34,11(1991), 32-39

See also:
Robert S. Ledley, "Digital Electronic Computers in Biomedical Science", Science 130(no. 3384), 1225-1234; cf his The Use of Computers in Biology and Medicine (NY, 1965)
Robert K. Lindsay, Applications of Artificial Intelligence for Organic Chemistry, Chapter 1 and especially Chapter 9. (xerox on shelf)
Peter Friedland and Laurence H. Kedes, "Discovering the Secrets of DNA" Comm.ACM 28,11(1985), 1164-86 (pdf) (MOLGEN)
Joshua Lederberg, "How DENDRAL Was Conceived and Born", A History of Medical Informatics (NY: ACM Press, 1987), 14-44; appendix (37-44) is memo of 4/5/65 by E.A. Feigenbaum and R.W. Watson, "An Initial Research Statement for a Machine Induction Research Project" (pdf version)
Temple F. Smith, "The History of Genetic Sequence Databases", Genomics 6(1990): 701-707

Week 9: Games

Together with Henry Lowood, Timothy Lenoir has also developed a website on the history of computer games, broadly conceived, and also aimed at enlisting the collaboration of the research community in compiling the historical record.  See the proposal for the developing project "How They Got Game" The proposal has links to a variety of supporting documents, foremost among them Lenoir's "All War is but Simulation:  The Military-Entertainment Complex", Configurations, Vol 8 (2000), pp. 238-335.  For other, related articles, see Lenoir's research page.  See also the website for Lowood's course at Stanford on  the History of Computer Games Design.

J.M. Graetz, "The Origin of Spacewar",
Creative Computing (August, 1981)
The GOTCHA (Gaming Obsession Throughout Computer History Association) site has an extensive collection of early games and machines.
Adventureland offers a catalog of adventure games

Roger points to the following:
I've found several excellent overviews of video game history on the Web:
Adam "Iconoplast" Baratz, "The Stage of the Game"Ars technica
"The Dot Eaters: Videogame History 101"
Stewart Brand, "Spacewar: Fanatic Life and Symbolic Death Among the Computer Bums", Rolling Stone (12/7/72)
For current, broadranging studies of games, see Game Studies

Janet H. Murray, Hamlet on the Holodeck: The Future of Narrative in Cyberspace (Cambridge, MA: MIT Press, 1997); the book has a resource page.
Mark J.P. Wolf (ed.), The Medium of the Video Game (Austin, University of Texas Press, 2001)
Jay David Bolter and Richard Grusin, Remediation: Understanding New Media (Cambridge, MA: MIT Press, 1999)

Week10: Graphics and Visualization

Ivan Sutherland, "SKETCHPAD: A Man-Machine Graphical Communication System", Proceedings--Spring Joint Computer Conference, 1963, 507-524 (pdf)
Daram V. Ahuja, Steven A. Coons, "Geometry for Construction and Display", IBM Systems Journal 7,3/4(1968), 188-205
Robin Williams, "A Survey of Data Structures for Computer Graphics Display", ACM Computing Surveys 3,1(1971), 1-21 (pdf)
Ivan E. Sutherland, Robert F. Sproull, Robert A. Schumacker, "A Characterization of Ten Hidden-Surface Algorithms", ACM Computing Surveys 6,1(1974), 1-55 (pdf)

J. Hurst, et al., "Retrospectives I[& II]: the early years in computer graphics at MIT, Lincoln Lab, and Harvard", ACM SIGGRAPH Computer Graphics 23,5(1989), 19-73 [I pdf] [II pdf]
"Virtual Reality Comes of Age", Chap. 10 of Funding a Revolution: Government Support for Computing Research (Washington, DC: National Academy Press)

J.D. Foley and A. van Dam, Fundamentals of Interactive Computer Graphics, Chaps. 1-2; Chap. 9, Secs. 1-3
B.H. McCormick, T.A. DeFanti, M.D. Brown, "Visualization in Scientific Computing",ACM SIGGRAPH Computer Graphics 21,6(1987)
Allen L. Ambler and Margaret M. Burnett, "Influence of Visual Technology on the Evolution of Language Environments", Computer 22,10(1989), 9-22
Special issue of  SIGGRAPH Computer Graphics with articles on early graphics for games
A useful timeline with images at Ohio State (ignore the "Pre-1950" charter myth)

Robert Rivlin, The Algorithmic Image: Graphic Visions of the Computer Age (Redmond: Microsoft Press, 1986)

Week 11: Representation

Rodney A.Brooks, "Intelligence Without Representation", Artificial Intelligence Journal (47), 1991, pp. 139–159. (pdf)
----,  "Intelligence Without Reason", Proceedings of 12th Int. Joint Conf. on Artificial Intelligence, Sydney, Australia, August 1991, pp. 569–595 (pdf)

John Unsworth, "Knowledge Representation in Humanities Computing"

Brian Cantwell Smith, The Origin of Objects
Marvin Minsky, The Society of Mind
Hilary Putnam, Representation and Reality
Paul Cilliers, Complexity and Postmodernism
A. Riegler, M. Peschl, and A. von Stein (eds.), Understanding Representation in the Cognitive Sciences

Week 12: The Social Web of Computing

Rob Kling and Walt Scacchi, "The Web of Computing: Computing Technology as Social Organization," Advances in Computers 21(1982), 3-85 .
Fernando Flores and Terry Winograd, Understanding Computers and Cognition
Yvonne Dittrich, Christiane Floyd, and Ralf Klischewski (eds.), Social Thinking -- Software Practice (MIT Pr., 2002) (contents) (online version - restricted to Princeton IP) (review by Paul Duguid) (earlier versions of some of the papers at Dagstuhl Conference in 1999))
John Seely Brown and Paul Duguid, The Social Life of Information
Lawrence Lessig, Code and Other Laws of Cyberspace and The Future of Ideas

The Course

The electronic digital computer was created to do science, specifically the numerical calculations required to solve equations in ballistics and fluid dynamics. Once invented, it soon became in itself the object of scientific inquiry, as its capacity to process not only numbers but symbols in general opened the questions of what can be computed and what is computation? John von Neumann was not alone in seeing in the computer not only a means of modeling the physical world but a model of human thought. Conversely, nature's design of the brain suggested to him an agenda for research into the design of computers, so that as artificial organisms they could emulate the capacity of natural organisms for self-stability, self-repair, self-replication, and even evolution to more complex forms.

Between von Neumann's goals and the computers for which he laid down the basic architecture lay the problem of programming. Computers could in principle do anything, as long as humans could tell them in practice how to do it. The experience of the early programmers made clear how big the gap between theory and practice was. Using the computer to accomplish a task required that one express the task in computational terms and then translate those terms into the instruction set of the computer. The rapid development of the computer itself made the job that much harder by regularly changing that instruction set, requiring that all existing programs be rewritten for the new platform. Hand-in-hand with the writing of programs for science, business, and industry went the writing of programs for making the computer more stable and more accessible to users. In 1957 John Tukey, who had coined the term "bit", also introduced a new word to characterize that second body of programs; he called it "software", to distinguish it from the "hardware" on which it ran. In the process, the effective meaning of "computer" itself had less to do with the hardware than with a conceptual scheme -what came to be called a "virtual machine". Between the world that practitioners were trying to model and the models that ran on their computers stood an ever more complex and sophisticated model of computing, the subject of an entirely new science. Recent trends in computer simulation suggest that it is becoming a surrogate for the world itself.

The seminar will follow the history of software since 1945, both in its application to learned disciplines and practical activities and as a subject in its own right. We will focus on the continuing interaction between what people wanted to do with computers and what computers made it possible to do, that is, on the way in which the computer as tool both shaped and was shaped by the tasks to which it was applied. Hence, knowledge of various areas of science and technology (or, for that matter, business and management) will be as important to our work as knowledge of computing. So we'll share expertise in these areas, rather than expecting it of all. Following is a first cut at the weekly topics (not necessarily in the order in which they will be taken up), along with suggested reading for the first session.

Tentative topics:

Programming and programming systems
Software for Science
Physical Sciences
Life Sciences
Cognitive Sciences
Science as Software
Software in the Humanities
Science for Software
Software as Industry
Software as Labor Process
Software as Engineering
Software as Science