Philosophy of Computer Science

Philosophy of Computer Science

Course Summary

Spring 2007

Last Update: 22 April 2007

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 search for truth, in any field, by rational means

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

    4. Main branches of philosophy

      • Especially "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
        • 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


  3. Is CS a science or engineering?

    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 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 is a computer? — History


  5. 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)


  6. What is a computer? — Philosophy

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

    2. Hayes et al. symposium

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

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


  7. What is an algorithm? — Philosophy

    1. Cleland:

      1. Mundane procedures (causal processes, including recipes) are effective procedures that are not TM-computable
      2. Effectiveness of mundane procedures depends on external world

    2. Preston on difference between recipes and algorithms

      • recipes are more like specifications


  8. What is hypercomputation?

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


  9. What is a computer program?

    1. What is implementation?

      1. Chalmers: implementation is isomorphism

        1. argument against Searle
        2. a computer is an implementation of a computation or of a UTM

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

        • syntax vs. semantics of formal systems


    2. What is software?

      1. Moor:

        1. 2 levels of understanding:

          • as physical object
          • on symbolic level

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

        2. computer program = set of instructions that a computer can execute

        3. x is software for computer c & person p =def x is a computer program for c that is changeable by p

        4. 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

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

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


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

      • copyrights vs. patents
      • Newell: need to devise good models ("ontologies") of algorithms & other CS entities
      • 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.


    6. Can programs be verified?

      • Fetzer: programs can't be verified

        1. because you can't logically prove that causal systems won't fail.
        2. at best, can verify an algorithm

        3. Bruce Shriver: but H/W fails much less often than S/W!


  10. 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
      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.


  11. 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


  12. Computer Ethics — II




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