Three Paradigms of Computer Science
- 836 Downloads
- 21 Citations
Abstract
-
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.
Keywords
Philosophy of computer science Ontology and epistemology of computer programs Scientific paradigmsNotes
Acknowledgements
Special thanks go to Ray Turner for reviewing draft arguments and for his guidance and continuous support, without which this paper would not have been possible; to Jack Copeland for his guidance on matters of traditional philosophy; and to Bill Rapaport for his detailed comments. We also thank Tim Colburn (2000) and Bill Rapaport (2005) without whose extensive contributions the nascent discipline of philosophy of computer science would not exist; Barry Smith for his guidance; Susan Stuart for developing the contentions made of this paper; Naomi Draaijer for her support; Yehuda Elkana, Saul Eden-Draaijer, and Mary J. Anna for their inspiration. This research was supported in part by grants from UK’s Engineering and Physical Sciences Research Council and the Royal Academy of Engineering.
References
- Abran, A., & Moore, J. W. (Eds.) (2004). Guide to the Software Engineering Body of Knowledge—SWEBOK (2004 ed.) Los Alamitos: IEEE Computer Society.Google Scholar
- Abelson, H., Sussman, J.J. (1996). Structure and Interpretation of Computer Programs. (2nd ed.) Cambridge: MIT Press.Google Scholar
- Aho, A. V., Sethi, R., & Ullman, J. D. (1986). Compilers: Principles, techniques, and tools. Reading: Addison Wesley.Google Scholar
- 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.Google Scholar
- Berry, H., Pérez, D. G., & Temam, O. (2005). Chaos in computer performance. Nonlinear Sciences arXiv:nlin.AO/0506030.Google Scholar
- Brent, R., & Bruck, J. (2006). Can computers help to explain biology? Nature, 440, 416–417.CrossRefGoogle Scholar
- Bundy, A. (2005). What kind of field is AI? In: D. Partridge, & Y. Wilks (Eds.), The foundations of artificial intelligence. Cambridge: Cambridge university Press.Google Scholar
- Carr, N. G. (2004). Does IT matter? Information technology and the corrosion of competitive advantage. Harvard Business School Press.Google Scholar
- Cohn, A. (1989). The notion of proof in hardware verification. Journal of Automated Reasoning, 5(2), 127–139.zbMATHCrossRefGoogle Scholar
- Colburn, T. R. (2000). Philosophy and computer science. Armonk, N.Y.: M.E. Sharpe.Google Scholar
- 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.Google Scholar
- Devaney, R. L. (1989). Introduction to chaotic dynamical systems (2nd ed.). Redwood: Benjamin-Cummings Publishing.zbMATHGoogle Scholar
- 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.CrossRefGoogle Scholar
- Denning, P. J. (1989). A debate on teaching computing science. Communications of the ACM, 32(12), 1397–1414.CrossRefGoogle Scholar
- 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.CrossRefGoogle Scholar
- Dijkstra, E.W. (1988) On the cruelty of really teaching computing science. Unpublished manuscript EWD 1036.Google Scholar
- 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.CrossRefGoogle Scholar
- 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.Google Scholar
- Einstein, A. (1934). Mein Weltbild. Amsterdam: Querido Verlag.Google Scholar
- Fasli, M. (2007). Agent technology for E-commerce. London: Wiley.Google Scholar
- 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.Google Scholar
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. M. (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley.Google Scholar
- 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.Google Scholar
- Gibbs, W. W. (1994) Software’s chronic crisis. Scientific American, 271(3), 86–95.CrossRefGoogle Scholar
- Hall, A. (1990). Seven myths of formal methods. IEEE Software, 7(5), 11–19.CrossRefGoogle Scholar
- Hoare, C. A. R. (1969). An axiomatic basis for computer programming. Communications of the ACM, 12(10), 576–583zbMATHCrossRefGoogle Scholar
- 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 PressGoogle Scholar
- 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.Google Scholar
- Knuth, D. E. (1968). The art of computer programming, Vol. I: Fundamental algorithms. Reading, MA: Addison Wesley.Google Scholar
- Knuth, D. E. (1974). Computer science and its relation to mathematics. The American Mathematical Monthly, 81(4), 323–343.zbMATHCrossRefMathSciNetGoogle Scholar
- 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.Google Scholar
- Loux, M. J. (1998). Nominalism. Routledge Encyclopedia of Philosophy (electronic Ver. 1.0). London and New York: Routledge.Google Scholar
- 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.Google Scholar
- Mainzer, K. (2004). System: an introduction to systems science. In: L. Floridi (Ed.), The Blackwell guide to philosophy of computing and information. Malden: Blackwell.Google Scholar
- 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.zbMATHCrossRefMathSciNetGoogle Scholar
- McCarthy, J. (1962). Towards a mathematical science of computation. Proceedings of IFIP.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- Newell, A., & Simon, H. A. (1976). Completer science as empirical inquiry: Symbols and search. Communications of the ACM, 19(3), 113–126.CrossRefMathSciNetGoogle Scholar
- Olson, E. T. (1997). The ontological basis of strong artificial life. Artificial Life, 3(1), 29–39.Google Scholar
- 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.Google Scholar
- Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), 1053–1058.CrossRefGoogle Scholar
- Perry, D. E., & Wolf, A. L. (1992). Foundation for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4), 40–52.CrossRefGoogle Scholar
- 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.Google Scholar
- Popper, K. (1963). Conjectures and refutations: The growth of scientific knowledge. Routledge, London.Google Scholar
- Putnam, H. (1975). Minds and machines. In: Philosophical papers, Vol. 2: Mind, Language, and reality. pp. 362–385. Cambridge: Cambridge University Press.Google Scholar
- Quine, W. V. O. (1969). Natural kinds. In: Ontological reality and other essays. Columbia University Press.Google Scholar
- Rapaport, W. J. (2007). Personal correspondence.Google Scholar
- Rapaport, W. J. (2005). Philosophy of computer science: An introductory course. Teaching Philosophy, 28(4), 319–341.MathSciNetGoogle Scholar
- Raymond, E. S. (1996). The New Hacker’s Dictionary (3rd ed.). Cambridge: MIT Press.Google Scholar
- Simon, H. A. (1969). The sciences of the artificial (1st ed.) Boston: MIT Press.Google Scholar
- Sommerville, I. (2006). Software engineering (8th ed.) Reading: Addison Wesley.Google Scholar
- Stack, G. S. (1998). Materialism. Routledge Encyclopedia of Philosophy (electronic Ver. 1.0). London and New York: Routledge.Google Scholar
- Steinhart, E. (2003). Supermachines and superminds. Minds and Machines, 13(1), 155–186.zbMATHCrossRefGoogle Scholar
- Stoy, J. E. (1977). Denotational semantics: The Scott-Strachey approach to programming language theory. Cambridge: MIT Press.Google Scholar
- Strachey, C. (1973). The varieties of programming language. Tech. Rep. PRG-10 Oxford University Computing Laboratory.Google Scholar
- Szyperski, C. A. (2002). Component software—Beyond object-oriented programming (2nd ed.). Reading: Addison-Wesley.Google Scholar
- 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).Google Scholar
- Turing, A. M. (1950). Computing machinery and intelligence. Mind, 59, 433–460.CrossRefMathSciNetGoogle Scholar
- 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.Google Scholar
- Turner, R. (2005). The foundations of specification. Journal of Logic & Computation, 15(5), 623–663.zbMATHCrossRefGoogle Scholar
- Turner, R. (2007). Personal correspondence.Google Scholar
- Wegner, P. (1976). Research paradigms in computer science. In Proc. 2nd Int’l Conf. Software engineering, San Francisco, CA, pp. 322–330.Google Scholar