Abstract
Software should be of great interest to historians of science. That may seem strange, given that it is of such recent origin. Software is no older than the modern electronic computer and the activity of writing programs for it. It is still experiencing growing pains. Yet, over the past fifty years, it has become the subject of its own thriving science and a ubiquitous medium for pursuing other sciences. In both instances software represents a new kind of science. It is what Herbert Simon calls a “science of the artificial.”2 There is nothing natural about software or any science of software. Programs exist only because we write them, we write them only because we have built computers on which to run them, and the programs we write ultimately reflect the structures of those computers. Computers are artifacts, programs are artifacts, and models of the world created by programs are artifacts. Hence, any science about any of these must be a science of a world of our own making rather than of a world presented to us by nature.3 What makes it both challenging and intriguing is that those two worlds meet in the physical computer, which enacts a program in the world. Their encounter has posed new and difficult epistemological questions concerning what we can know both about the workings of the models and about the relation of the models to the phenomena they purport to represent or simulate. Answers to those questions would seem to depend, at least in part, on understanding programs as dynamic systems.
I don’t really understand the title, Computer Science. I guess I don’t understand science very well; I’m an engineer. Computers are worth thinking about and talking about and doing about only because they are useful devices, which do something for somebody. If you are just interested in contemplating the abstract, I would strongly recommend the belly button, which would survive any war that man survives.
John R. Pierce1
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Keynote Address, Conference on Academic and Related Research Programs in Computing Science, 5–8 June 1967; publ. in University Education in Computing Science, ed. Aaron Finerman (New York, 1968), 7. Renowned for his work in information theory, Pierce at the time was Executive Director of Research, Communications Sciences Division, Bell Telephone Laboratories.
Herbert Simon, The Sciences of the Artificial (Cambridge, Mass., 1969; 2nded. 1981, 3rded. 1996).
Let me leave aside for the moment questions about how much “nature” ever presents itself to us directly.
Marvin Minsky, “Form and Content in Computer Science” (1969 Turing Award), ACM Turing Award Lectures: The First Twenty Years, 1966–1985 (New York, 1987), 219–42.
Allan Newell and Herbert Simon, “Computer Science as Empirical Inquiry: Symbols and Search” (1975 Turing Award), ACM Turing Award Lectures, 287–313. Newell and Simon had earlier joined with Alan Perlis in taking a similar position in “What is Computer Science?” a Letter to the Editor of Science 157 (22 September 1967): 1373–4.
Peter Wegner, “Three Computer Cultures: Computer Technology, Computer Mathematics, and Computer Science,” Advances in Computers 10 (1970): 7–78.
Forsythe, in American Mathematical Monthly 75/5 (1968): 454–62; Pierce, in Finerman, 24.
The Turing Award is considered the ACM’s highest honor. “It is given to an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the computer field.” (http://www.acm.org/awards/taward.html). A look at the list shows that “technical” has usually (but not always) been construed as “theoretical,” indeed “mathematical.”
Michael S. Mahoney, “Computer Science: The Search for a Mathematical Theory,” in Science in the 20th Century, ed. John Krige and Dominique Pestre (Amsterdam, 1997), Chap. 31.
It is curious that to this day the community distinguishes between computer science and theoretical computer science, as if the former involves some kind of science other than theoretical science. It is not clear what that other kind of science might be nor what is scientific about it.
Michael S. Mahoney, “Computer Science,” see also “The Structures of Computation,” in The First Computers—Histories and Architectures, ed. Raul Rojas and Ulf Hashagen (Cambridge, Mass., 2000), 17–31.
For this and other examples of feedback from computer science to mathematics, see Garrett Birkhoff, “The Role of Modern Algebra in Computing,” Computers in Algebra in Number Theory (Providence, R. I., 1971), 1–47. For a discussion of the changes in the mathematics curriculum prompted by computer science
see Anthony Ralston, “Computer Science, Mathematics, and the Undergraduate Curriculum in Both,” American Mathematical Monthly 81/7 (1981): 472–85.
See, for example, Garrett Birkhoff and Thomas C. Bartee, Modern Applied Algebra (New York, 1970)
Rudolf Lidl and Gunter Pilz, Applied Abstract Algebra (New York, 1984)
Andrea Asperti, Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist (Cambridge, Mass., 1991).
See W. Fontana and Leo W. Buss, “The Barrier of Objects: From Dynamical Systems to Bounded Organizations,” in Boundaries and Barriers, ed. J. Casti and A. Karlqvist (Reading, Mass., 1996), 56–116.
The proceedings of the Conference were published in CACM 7/2 (1964): 51–136; see in particular the “Summary Remarks” by Saul Gorn and the “General Discussion” that followed, pp. 133–6.
Such differences shine through the protocols of the Software Engineering Conferences at Garmisch and Rome. People differed about what it would mean to make the subject scientific, about the extent to which one can do so, about the importance of trying to make it so, about the means for achieving that goal. They had different agendas.
Not all agendas have converged on the current configuration. For example, Ershov and other Russian computer scientists took their own approach to a science of software but did so in relative isolation from research in the West. To the historian, this independent line of development offers an opportunity for comparisons and contrasts, and holds out the possibility of linking agendas to the political, social, and economic context within which they take shape. See, for example, Andrei P. Ershov, Origins of Programming: Discourses on Methodology (New York, 1990)
Ershov and M. R. Shura-Bura, “The Early Development of Programming in the USSR,” in A History of Computing in the Twentieth Century, ed. N. Metropolis et al. (New York, 1978), 137–96
R. A. Di Paola, “A Survey of Soviet Work in the Theory of Computer Programming,” Rand Memorandum RM-5424-PR (Santa Monica, 1967).
Arthur L. Norberg and Judy E. O’Neill, Transforming Computer Technology: Information Processing for the Pentagon, 1962–1986 (Baltimore, 1996).
William Aspray, Bernard O. Williams, and Andrew H. Goldstein, Computing as Servant and Science: The Impact of the National Science Foundation, unpub. draft, 1992
cf. Aspray and Williams, “Arming American Scientists: NSF and the Provision of Scientific Computing Facilities for Universities, 1950–1973,” Annals of the History of Computing 16/4 (1994): 60–74.
[Hamming’s note]: G. E. Forsythe, “What to do Until the Computer Scientist Comes,” American Mathematical Monthly 75/5 (May 1968): 454–61.
Richard W. Hamming, “One Man’s View of Computer Science,” ACM Turing Award Lectures (n. 4 above), 207–18 at 208.
Available at http://www-formal.stanford.edu/jmc/history/dartmouth.html.
Thomas S. Kuhn, The Structure of Scientific Revolutions (Chicago, 1962; 2nd ed. 1970).
For example, ACM Curriculum Committee on Computer Science, “An Undergraduate Program in Computer Science—Preliminary Recommendations,” CACM 8 (1965): 543–8; “Curriculum 68—Recommendations for Academic Programs in Computer Science,” CACM 11 (1968): 151–97; “Curriculum 78—Recommendations for the Undergraduate Program in Computer Science,” CACM 22 (1979): 147–66; A. Ralston and M. Shaw, “Curriculum 78—Is Computer Science Really That Unmathematical?” CACM 23 (1980): 67–70.
For Purdue, see John Rice and Richard A. DeMillo, eds., Studies in Computer Science in Honor of Samuel D. Conte (New York and London, 1994)
for Cornell, David Gries, “Twenty Years of Computer Science at Cornell,” Engineering: Cornell Quarterly 20/2 (1985): 2–11.
Vannevar Bush, Science, the Endless Frontier: A Report to the President on a Program for Postwar Scientific Research (Washington, D.C., 1945; reprint, 1960, 1990). For a thoughtful critique of Bush’s basic premise
see Donald E. Stokes, Pasteur’s Quadrant: Basic Science and Technological Innovation (Washington, DC, 1997).
“Towards a Mathematical Science of Computation,” Proc. IFIP Congress 62 (Amsterdam, 1963), 21–28 at 21.
“A Basis for a Mathematical Theory of Computation,” in Computer Programming and Formal Systems, ed. P. Braffort and D. Hirschberg (Amsterdam, 1963), 33–69 at 69.
Interview with M. S. Mahoney, 3 December 1990.
Peter Naur, Brian Randell, and J. N. Buxton, eds., Software Engineering: Concepts and Techniques. Proceedings of the NATO Conferences (New York, 1976), 147.
They offered for three main reasons: “(1) Computers and programs are inherently mathematical objects. They manipulate formal symbols, and their input-output behavior can be described by mathematical functions. The notations we use to represent them strongly resemble the formal notations which are used throughout mathematics and systematically studied in mathematical logic. (2) Programs often accept arbitrarily large amounts of input data; hence, they have a potentially unbounded number of possible inputs. Thus a program embraces, in finite terms, an infinite number of possible computations; and mathematics provides powerful tools for reasoning about infinite numbers of cases. (3) Solving complex information-processing problems requires mathematical analysis. While some of this analysis is highly problem-dependent and belongs to specific application areas, some constructions and proof methods are broadly applicable, and thus become the subject of theoretical computer science. What Can Be Automated? [hereafter COSERS], ed. Bruce W. Arden (Cambridge, Mass., 1980), 139. The committee consisted of Richard M. Karp (Chair; Berkeley), Zohar Manna (Stanford), Albert R. Meyer (MIT), John C. Reynolds (Syracuse), Robert W. Ritchie (Washington), Jeffrey D. Ullman (Stanford), and Shmuel Winograd (IBM Research).
C. A. R. Hoare, “The Mathematics of Programming,” in his Essays in Computing Science (Hemel Hempstead, 1989), 352.
For a discussion of some of the issues, together with case studies, see Andrew Pickering, The Mangle of Practice: Time, Agency, & Science (Chicago, 1995).
COSERS, 9.
Frederick P. Brooks, “No Silver Bullet—Essence and Accidents of Software Engineering,” Information Processing 86, ed. H. J. Kugler (Amsterdam, 1986), 1069–76; reprint in Computer 20/4 (1987): 10–19
and in the Anniversary Edition of Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering (Reading, Mass., 1995), Chap. 16. Chap. 17, “’No Silver Bullet’ Retired” is a response to critics of the original article and a review of the silver bullets that have missed the mark over the intervening decade.
Since the late 1980s, this interaction has been moved to a meta-level, as researchers have sought to model the process by which the computational model is designed. See, for example, Leon Osterweil, “Software Processes are Software Too,” Proceedings: 9th International Conference on Software Engineering (Los Angeles, Calif., 1987), 2–13.
Aristide Lindenmayer, “Mathematical Models for Cellular Interactions in Development,” Journal of Theoretical Biology 18 (1968): 280–99, 300–15.
For a richly detailed and critical account of this development, see Lily Kay, Who Wrote the Book of Life? A History of the Genetic Code (Stanford, 2000). Evelyn Fox Keller also explores the metaphor critically in “The Body of a New Machine: Situating the Organism Between the Telegraph and the Computer,” in Refiguring Life: Metaphors of Twentieth-Century Biology (New York, 1995).
John von Neumann, “Method in the Physical Sciences,” in The Unity of Knowledge, ed. L. Leary (Garden City, N.J., 1955); reprint in John von Neumann, Works, VI, 492.
John von Neumann to Oswald Veblen, 26 March 1945, in John von Neumann, Works, VI, 357.
H. Goldstine and John von Neumann, “On the Principles of Large-Scale Computing Machines,” ca. 1946, in John von Neumann, Works, V, 2.
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, 1951), 1–31; reprint in Papers of John von Neumann on Computing and Computer Theory, ed. William Aspray and Arthur Burks (Cambridge, Mass./London/Los Angeles/San Francisco, 1987), 391–431 at 406.
John H. Holland, Hidden Order: How Adaptation Builds Complexity (Reading, Mass., 1995), 161–2.
John H. Holland, Hidden Order: How Adaptation Builds Complexity (Reading, Mass., 1995), 171–2.
In introducing the ACM to readers of the first issue of its Journal in January, 1954, S. B. Williams anticipated the coinage: “Until the engineering societies, AIEE and IRE, became sufficiently interested to struggle with ‘hardware,’ the Association provided a forum for all phases of the field. Now the Association can direct its efforts to the other phases of computing systems, such as numerical analysis, logical design, application and use, and, last but not least, to programming,” Journal of the ACM 1/1 (1954): 3.
John Tukey, “The Teaching of Concrete Mathematics,” American Mathematical Monthly 65/1(1958): 1–9 at 2: “Today the ‘software’ comprising the carefully planned interpretive routines, compilers, and other aspects of automative [sic] programming are at least as important to the modern electronic calculator as its ‘hardware’ of tubes, transistors, wires, tapes and the like.”
Jan van Leeuwen, ed., Handbook of Theoretical Computer Science (Amsterdam, Cambridge, Mass., 1990), vol. A, Algorithms and Complexity; vol. B, Formal Models and Semantics.
Only after writing these words did I discover that Wolfgang Coy had asked the same question, “’Informatique’: What’s in a Name?” and had reached the same conclusion in his essay “Defining Discipline”, in Ch. Freksa, M. Jantzen, R. Valk (eds.), Foundations of Computer Science: Potential — Theory — Cognition (Springer: Berlin, Heidelberg, New York 1997): “But the German ‘Informatik’ made a strange twist: While it uses the French word, it sticks firmly to the American usage of computer science (with elements from computer engineering).” Together with many colleagues, Coy would like Informatik to be something quite different; but it is not yet, and it has not been so historically. See, inter alia, his “Für eine Theorie der Informatik!” in Wolfgang Coy et al. (eds.) Sichtweisen der Informatik (Braunschweig, Wiesbaden: Vieweg, 1992), 17–32.
“We certainly cannot expect that the scientific basis of software can come from physics as in the older engineering branches. It may come from mathematics or from biology. Mathematics has clearly brought some help already, be it in cryptology or in program proof automation. Biology is largely untapped.”
See Michael Mahoney, “The Mathematical Realm of Nature,” in The Cambridge History of Seventeenth-Century Philosophy, vol. 1, ed. Daniel Garber and Michael Ayers (Cambridge, 1997), 702–55.
Wigner’s article, based on the Richard Courant Lecture at New York University in 1959, appeared in Communications on Pure and Applied Mathematics 13 (1960): 1–14; cf. Mark Steiner’s recent book, The Applicability of Mathematics as a Philosophical Problem (Cambridge, Mass., 1998).
See Robert Rosen, “Effective Processes and Natural Law,” in The Universal Turing Machine: A Half-Century Survey, ed. Rolf Herken (Wien/New York, 1994/5), 485–98; cf. his earlier article, “Church’s Thesis and its Relation to the Concept of Realizability in Biology and Physics,” Bulletin of Mathematical Biophysics 24 (1962): 375–93.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mahoney, M.S. (2002). Software as Science—Science as Software. In: Hashagen, U., Keil-Slawik, R., Norberg, A.L. (eds) History of Computing: Software Issues. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-04954-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-662-04954-9_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-07653-4
Online ISBN: 978-3-662-04954-9
eBook Packages: Springer Book Archive