Three Paradigms of Computer Science
- Amnon H. Eden
- … show all 1 hide
Purchase on Springer.com
$39.95 / €34.95 / £29.95*
Rent the article at a discountRent now
* Final gross prices may vary according to local VAT.
We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed deductively or empirically? Are computer programs on a par with mathematical objects, with mere data, or with mental processes? We conclude that distinct positions taken in regard to these questions emanate from distinct sets of received beliefs or paradigms within the discipline:
The rationalist paradigm, which was common among theoretical computer scientists, defines computer science as a branch of mathematics, treats programs on a par with mathematical objects, and seeks certain, a priori knowledge about their ‘correctness’ by means of deductive reasoning. The technocratic paradigm, promulgated mainly by software engineers and has come to dominate much of the discipline, defines computer science as an engineering discipline, treats programs as mere data, and seeks probable, a posteriori knowledge about their reliability empirically using testing suites. The scientific paradigm, prevalent in the branches of artificial intelligence, defines computer science as a natural (empirical) science, takes programs to be entities on a par with mental processes, and seeks a priori and a posteriori knowledge about them by combining formal deduction and scientific experimentation.
The rationalist paradigm, which was common among theoretical computer scientists, defines computer science as a branch of mathematics, treats programs on a par with mathematical objects, and seeks certain, a priori knowledge about their ‘correctness’ by means of deductive reasoning.
The technocratic paradigm, promulgated mainly by software engineers and has come to dominate much of the discipline, defines computer science as an engineering discipline, treats programs as mere data, and seeks probable, a posteriori knowledge about their reliability empirically using testing suites.
The scientific paradigm, prevalent in the branches of artificial intelligence, defines computer science as a natural (empirical) science, takes programs to be entities on a par with mental processes, and seeks a priori and a posteriori knowledge about them by combining formal deduction and scientific experimentation.
- Abran, A., & Moore, J. W. (Eds.) (2004). Guide to the Software Engineering Body of Knowledge—SWEBOK (2004 ed.) Los Alamitos: IEEE Computer Society.
- Abelson, H., Sussman, J.J. (1996). Structure and Interpretation of Computer Programs. (2nd ed.) Cambridge: MIT Press.
- Aho, A. V., Sethi, R., & Ullman, J. D. (1986). Compilers: Principles, techniques, and tools. Reading: Addison Wesley.
- Balaguer, M. (2004). Platonism in metaphysics. In: E. N. Zalta (Ed.), The Stanford Encyclopedia of philosophy (Summer 2004 ed.) Available http://plato.stanford.edu/archives/sum2004/entries/platonism. (Accessed March 2007.)
- Bedau, M. A. (2004). Artificial life. In: L. Floridi (Ed.), The Blackwell guide to philosophy of computing and information. Malden: Blackwell.
- Berry, H., Pérez, D. G., & Temam, O. (2005). Chaos in computer performance. Nonlinear Sciences arXiv:nlin.AO/0506030.
- Brent, R., & Bruck, J. (2006). Can computers help to explain biology? Nature, 440, 416–417. CrossRef
- Bundy, A. (2005). What kind of field is AI? In: D. Partridge, & Y. Wilks (Eds.), The foundations of artificial intelligence. Cambridge: Cambridge university Press.
- Carr, N. G. (2004). Does IT matter? Information technology and the corrosion of competitive advantage. Harvard Business School Press.
- Cohn, A. (1989). The notion of proof in hardware verification. Journal of Automated Reasoning, 5(2), 127–139. CrossRef
- Colburn, T. R. (2000). Philosophy and computer science. Armonk, N.Y.: M.E. Sharpe.
- Copeland, B.J. (2002). The Church-Turing thesis. In: Edward N. Zalta (Ed.) The Stanford Encyclopedia of Philosophy (Fall 2002 ed.) Available http://plato.stanford.edu/archives/fall2002/entries/church-turing/ (Accessed Mar. 2007).
- Copeland, B.J. (2006). Are computer programs natural kinds? Personal correspondence.
- Devaney, R. L. (1989). Introduction to chaotic dynamical systems (2nd ed.). Redwood: Benjamin-Cummings Publishing.
- Debian Project, The. http://www.debian.org. Accessed March 2007.
- DeMillo, R. A., Lipton, R. J., & Perlis, A. J. (1979). Social processes and proofs of theorems and programs. Communications of the ACM, 22(5), 271–280. CrossRef
- Denning, P. J. (1989). A debate on teaching computing science. Communications of the ACM, 32(12), 1397–1414. CrossRef
- Denning, P. J., Comer, D. E., Gries, D., Mulder, M. C., Tucker, A., Turner, A. J., & Young, P. R. (1989). Computing as a discipline. Communication of the ACM, 32(1), 9–23. CrossRef
- Dijkstra, E.W. (1988) On the cruelty of really teaching computing science. Unpublished manuscript EWD 1036.
- Dybå, T., Kampenesa, V. B., & Sjøberg, D. I. K. (2006) A systematic review of statistical power in software engineering experiments. Information and Software Technology, 48(8), 745–755. CrossRef
- Eden, A. H., Hirshfeld, Y., & Kazman, R. (2006) Abstraction classes in software design. IEE Software, 153(4), 163–182. London, UK: The Institution of Engineering and Technology.
- Einstein, A. (1934). Mein Weltbild. Amsterdam: Querido Verlag.
- Fasli, M. (2007). Agent technology for E-commerce. London: Wiley.
- Fetzer, J. H. (1993). Program verification. In: J. Belzer, A. G. Holzman, A. Kent, & J. G. Williams (Eds.), Encyclopedia of computer science and technology (Vol. 28, Supplement 13). New York: Marcel Dekker Inc.
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. M. (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley.
- Georick, W., Hoffmann, U., Langmaack, & H. (1997). Rigorous compiler implementation correctness: How to prove the real thing correct. Proc. Intl. Workshop Current Trends in Applied Formal Method. Lecture Notes in Computer Science, Vol. 1641, pp. 122–136. London, UK: Springer-Verlag.
- Gibbs, W. W. (1994) Software’s chronic crisis. Scientific American, 271(3), 86–95. CrossRef
- Hall, A. (1990). Seven myths of formal methods. IEEE Software, 7(5), 11–19. CrossRef
- Hoare, C. A. R. (1969). An axiomatic basis for computer programming. Communications of the ACM, 12(10), 576–583 CrossRef
- Hoare, C. A. R. (1986). The mathematics of programming: an inaugural lecture delivered before the Univ. of Oxford on Oct. 17, 1985. New York: Oxford University Press
- Hoare, C. A. R. (2006). The ideal of program correctness. Transcript of lecture, Computer Journal. London: British Computer Society. Available: http://www.bcs.org/upload/pdf/correctness.pdf (Accessed Mar. 2007)
- IEEE Std 610.12-1990 (1990). IEEE Standard Glossary of Software Engineering Terms. Los Alamitos: IEEE Computer Society.
- Knuth, D. E. (1968). The art of computer programming, Vol. I: Fundamental algorithms. Reading, MA: Addison Wesley.
- Knuth, D. E. (1974). Computer science and its relation to mathematics. The American Mathematical Monthly, 81(4), 323–343. CrossRef
- Knuth E. D. (Undated). On the game of life, free will and determinism.(Video). Available: http://www.meta-library.net/ssq/sj1-body.html (Accessed Mar. 2007)
- Kuhn, T. (1962). The structure of scientific revolutions. Chicago: University of Chicago Press.
- Loux, M. J. (1998). Nominalism. Routledge Encyclopedia of Philosophy (electronic Ver. 1.0). London and New York: Routledge.
- Mahoney, M. S. (2002). Software as science—Science as software. In: U. Hashagen, R. Keil-Slawik, & A. Norberg (Eds.), History of computing: software issues. Berlin: Springer Verlag.
- Mainzer, K. (2004). System: an introduction to systems science. In: L. Floridi (Ed.), The Blackwell guide to philosophy of computing and information. Malden: Blackwell.
- Markie, P. (2004). Rationalism vs. Empiricism. In: E. N. Zalta (Ed.), The Stanford Encyclopedia of Philosophy. Available http://plato.stanford.edu/archives/fall2004/entries/rationalism-empiricism (Accessed Mar. 2007).
- McCarthy, J. (1960). Recursive functions of symbolic expressions and their computation by machine, Part I. Communications of the ACM, 3(4), 184–195. CrossRef
- McCarthy, J. (1962). Towards a mathematical science of computation. Proceedings of IFIP.
- McClure, R. M. (2001). Introduction. Addendum to: (Naur & Randell 1969). Available: http://www.homepages.cs.ncl.ac.uk/brian.randell/NATO/Introduction.html (Accessed Mar. 2007)
- McLaughlin, B. (2004). Computationalism, connectionism, and the philosophy of mind. In: L. Floridi (Ed.), The Blackwell guide to philosophy of computing and information. Malden: Blackwell.
- Meyer, B. (1997). UML—The Positive Spin. American Programmer, 10(3). Available: http://archive.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html (Accessed Mar. 2007)
- Milner, R. (2007). Memories of Gilles Kahn, and the informatic future. Transcript of speech before Colloquium in memory of Gilles Kahn, INRIA Research Institute.
- Naur, P., & Randell, B. (Eds.) (1969). Software Engineering: Report of a conference sponsored by the NATO Science Committee (7–11 Oct. 1968), Garmisch, Germany. Brussels, Scientific Affairs Division, NATO.
- Newell, A., & Simon, H. A. (1976). Completer science as empirical inquiry: Symbols and search. Communications of the ACM, 19(3), 113–126. CrossRef
- Olson, E. T. (1997). The ontological basis of strong artificial life. Artificial Life, 3(1), 29–39.
- OMG (Object Management Group). (2005). Unified Modeling Language (UML), Ver. 2.0. Technical report (2005). Available http://www.omg.org/technology/documents/formal/uml.htm (Accessed Mar. 2007)
- Ophir, S. (2006). Computer science and commercial forces: Can computer science be considered science? In Proc. 4th European conf. Computing And Philosophy—ECAP, Trondheim, Norway.
- Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), 1053–1058. CrossRef
- Perry, D. E., & Wolf, A. L. (1992). Foundation for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4), 40–52. CrossRef
- Pierce, J. R. (1968). Keynote address. Conference on Academic and Related Research Programs in Computing Science (5–8 June 1967). Reprinted in: A. Finerman (Ed.), University Education in Computing Science. New York: Academic Press.
- Popper, K. (1963). Conjectures and refutations: The growth of scientific knowledge. Routledge, London.
- Putnam, H. (1975). Minds and machines. In: Philosophical papers, Vol. 2: Mind, Language, and reality. pp. 362–385. Cambridge: Cambridge University Press.
- Quine, W. V. O. (1969). Natural kinds. In: Ontological reality and other essays. Columbia University Press.
- Rapaport, W. J. (2007). Personal correspondence.
- Rapaport, W. J. (2005). Philosophy of computer science: An introductory course. Teaching Philosophy, 28(4), 319–341.
- Raymond, E. S. (1996). The New Hacker’s Dictionary (3rd ed.). Cambridge: MIT Press.
- Simon, H. A. (1969). The sciences of the artificial (1st ed.) Boston: MIT Press.
- Sommerville, I. (2006). Software engineering (8th ed.) Reading: Addison Wesley.
- Stack, G. S. (1998). Materialism. Routledge Encyclopedia of Philosophy (electronic Ver. 1.0). London and New York: Routledge.
- Steinhart, E. (2003). Supermachines and superminds. Minds and Machines, 13(1), 155–186. CrossRef
- Stoy, J. E. (1977). Denotational semantics: The Scott-Strachey approach to programming language theory. Cambridge: MIT Press.
- Strachey, C. (1973). The varieties of programming language. Tech. Rep. PRG-10 Oxford University Computing Laboratory.
- Szyperski, C. A. (2002). Component software—Beyond object-oriented programming (2nd ed.). Reading: Addison-Wesley.
- Turing, A. M. (1936). On computable numbers, with an application to the entscheidungsproblem. In Proc. London Math. Soc. Ser., 2, 43(2198). Reprinted in Turing & Copeland (2004).
- Turing, A. M. (1950). Computing machinery and intelligence. Mind, 59, 433–460. CrossRef
- Turing, A. M., & Copeland, B. J. (Ed.) (2004). The essential Turing: Seminal writings in computing, logic, philosophy, artificial intelligence, and artificial life plus the secrets of Enigma. Oxford, USA: Oxford University Press.
- Turner, R. (2005). The foundations of specification. Journal of Logic & Computation, 15(5), 623–663. CrossRef
- Turner, R. (2007). Personal correspondence.
- Wegner, P. (1976). Research paradigms in computer science. In Proc. 2nd Int’l Conf. Software engineering, San Francisco, CA, pp. 322–330.
- Three Paradigms of Computer Science
Minds and Machines
Volume 17, Issue 2 , pp 135-167
- Cover Date
- Print ISSN
- Online ISSN
- Springer Netherlands
- Additional Links
- Philosophy of computer science
- Ontology and epistemology of computer programs
- Scientific paradigms
- Industry Sectors
- Amnon H. Eden (1) (2)
- Author Affiliations
- 1. Department of Computer Science, University of Essex, Colchester, Essex, UK
- 2. Center for Inquiry, Amherst, NY, USA