Philosophy of Computer Science

Philosophy of Computer Science

Course Summary

Spring 2010

Last Update: 26 April 2010

Note: NEW or UPDATED material is highlighted


  1. What is philosophy?

    1. Brief history of western philosophy as relevant to CS

    2. My definition:

      • philosophy =def the personal search for truth, in any field, by rational means.

    3. Argument analysis ("argument", "premise", "conclusion", "valid", "sound")

    4. Main branches of philosophy

      • ∀ field X: ∃"philosophy of X" = study of main goals & fundamental assumptions of X


  2. What is computer science?

    1. Motivations for asking the question (political, philosophical)

    2. Newell, Perlis, & Simon 1967:

      • CS = science of computers and surrounding phenomena
        • including algorithms, etc.

    3. Knuth 1974:

      • CS = study of algorithms and surrounding phenomena
        • including the computers they run on, etc.

    4. Newell & Simon 1976:

      • CS = empirical study ("artificial science") of the phenomena surrounding computers

    5. Hartmanis & Lin 1992:

      • CS = study of how to represent and process information and of the machines and systems that do this

    6. Brooks 1996:

      • CS is engineering, not science.

    7. Shapiro 2001:

      • CS = natural science of procedures

    8. Denning & Freeman 2009:

      • CS = new kind of science (neither physical, biological, or social) of natural and artificial information processes.


  3. Is CS a science or engineering (or something "sui generis")?

    1. What is science?

      1. Goals = description vs. explanation
      2. instrumentalism vs. realism
      3. scientific method

        1. Bacon (~1600): experimental method

          • Kemeny's loop:

            while ∃ new fact to observe, do:
            begin
              observe it;
              induce general hypothesis;
              deduce future observations;
              verify predictions;
            end.

        2. Popper (~1950): conjectures & refutations

          • X is scientific iff X is falsifiable

        3. Kuhn (~1960): science proceeds by "paradigm revolutions" alternating with "normal" science

      4. empirical sciences vs. non-empirical sciences (e.g., math)


    2. What is engineering?

      1. pure vs. applied sciences

      2. Davis 1998: history of engineering

        1. engineering is defined by its curriculum
        2. engineering =? application of science for use & convenience of people and to improve means of production

      3. Petroski 2003:

        • fundamental activity of engineering is design

      4. Loui 1987:

        • CS = a new kind of engineering that studies:
          • theory, design, analysis, implementation of information-processing algorithms


  4. What does CS study?

    1. What is a computer? — History

      • 2 parallel goals:

        1. goal 1 = to build a computing machine
          • Pascal, Leibniz, Babbage, Aiken, Atanasoff & Berry, Turing, Eckert & Mauchly, von Neumann

        2. goal 2 = to provide a foundation for math
          • Leibniz, Boole, Frege, Russell, Hilbert, Turing, Church, Gödel


    2. What is an algorithm? — Mathematics

      1. What is computation?

        1. A function f is computable =def there is an algorithm that computes f;

          i.e., there is an algorithm A such that for all input i, A(i)=f(i) and A specifies how f's input and output are related.

        2. algorithm for P =def a finite procedure (i.e., a finite set of instructions) for solving P that is:

          1. "effective" or unambiguous for the computer or human who will execute it;
            i.e., all steps of the procedure must be clear and well-defined for the executor, and

          2. it must eventually halt, and it must output a correct solution to P.

      2. Turing Machines
      3. history of term "computable"
      4. Turing's Thesis: a function is computable iff it is TM-computable.
      5. Church's Thesis: a function is computable iff it is lambda-definable (≡ recursive) (≡ TM) (≡ etc.)


    3. What is a computer? — Philosophy

      1. Searle, "Is the Brain a Digital Computer?"
        • Yes; because everything is (interpretable as) a digital computer

      2. Hayes et al. symposium

        • computer =
            "magic paper" machine that can take as I/P patterns that describe changes to themselves & other patterns,
            and that causes the described changes to occur

      3. Thomason:

        • computer = device that changes values of variables

      4. Is the universe a computer? (Lloyd, Wolfram)


    4. What is an algorithm? — Philosophy

      1. What is a procedure?

        1. Cleland:

          1. Mundane procedures (causal processes, including recipes) are effective procedures that are not TM-computable …
          2. … because their effectiveness depends on external world

        2. Preston on difference between improvisational recipes/music and precise algorithms

          • recipes are more like specifications


      2. What is hypercomputation?

        1. =def computation of functions that can't be TM-computed
        2. Turing's "oracle" machines
        3. Boolos & Jeffrey's "Zeus" machines (infinitely accelerating)
        4. Wegner's "interaction" machines
        5. Putnam's & Gold's "trial & error" machines (TM, but last answer counts)
          • Kugel 2002: Putnam-Gold machines may be needed for AI to succeed


      3. What is a computer program?

        1. What is implementation?

          1. Chalmers: implementation is isomorphism

            • argument against Searle
            • a computer is an implementation of a computation or of a UTM

          2. Rapaport: implementation is semantic interpretation of an Abstraction in some medium


        2. What is software?

          1. Moor:

            • 2 levels of understanding:

              • as physical object
              • on symbolic level

              • compare Dennett's physical, design, & intentional "stances"

            • computer program = set of instructions that a computer can execute

            • X is software for computer C & person P =def X is a computer program for C that is changeable by P

            • X is hardware for C & P =def X is part of C and X is not software for C & P

          2. Suber: software is syntactic form

          3. Colburn: software is a concrete abstraction

            • has a "medium of description": text in a formal language (abstraction)
            • has a "medium of execution": circuits & semiconductors (concrete)

            • compare Spinoza's "dual-aspect" theory of mind vs. brain


        3. Can software be patented? Or should it be copyrighted?

          1. copyrights vs. patents
          2. Newell: need to devise good models ("ontologies") of algorithms & other CS entities
          3. Koepsell: need to revise the models of legal protection.


        4. Are programs scientific theories?

          1. programs are (a language for expressing) theories, which can then be their own models
          2. theory vs. model, simulation vs. real thing, simulation vs. emulation
          3. philosophical theories of scientific explanation
          4. philosophical theories of scientific models


        5. Relation of program to world

          • Smith, "Limits of Correctness"

            1. There is a gap between the world and our models of it.
            2. Computers rely on models of the models, but must act in the real world.


  5. Computer Ethics — I

    1. Moor: "Are there decisions computers should never make?"

      1. No, at least, not as long as their track record is better than that of humans
        • ["Are there decisions computers should never make?"
          = "Are there decisions that should not be made rationally?"]

      2. But it's up to us to accept/reject their decisions

    2. Friedman & Kahn: Yes, because only humans are capable of being moral agents

    3. But: "to err is human"—the case of the airline crash caused by following a human's decision instead of a computer's.


  6. Philosophy of AI: Could we build artificial intelligences?

    1. Turing Test:

      • A computer will be said to be able to think if we cannot distinguish a computer's cognitive behavior from a human's

    2. Searle's Chinese Room Argument:

      • A computer could pass a Turing Test without really being able to think.

    3. Rapaport's way out of the Chinese Room:

      • Syntax can suffice for semantic interpretation of the kind needed for computational cognition


  7. Computer Ethics — II


  8. What is the philosophy of computer science?




Copyright © 2010 by William J. Rapaport (rapaport@buffalo.edu)
http://www.cse.buffalo.edu/~rapaport/584/S10/course-summary.html-20100426