Philosophy of Computer Science

Reading Assignments

Last Update: 25 April 2007

Note: NEW or UPDATED material is highlighted


Notes:
  1. Reading assignments are listed in reverse chronological order.
  2. Click here for current reading assignment.
  3. Many readings are accessible from "buffalo.edu" machines via the appropriate "Directory of Documents" webpages indicated below (next to "Topic").
  4. The username and password that may be required for some online readings will be announced in lecture. If you forget it, email Bill Rapaport.


    NEW
  1. Assigned: 27 Apr 07

    Topic: Philosophy of Computer Science

    1. Strongly Recommended:

      1. Scheutz 2002
      2. Smith 2002

    2. Recommended:


  2. Assigned: 20 Apr 07

    Topic: Computer Ethics (Part II)

    1. Required:

    2. Very Strongly Recommended!:

    3. Strongly Recommended:

    4. Recommended:

      1. Dietrich 2001
      2. Turkle 2004
      3. Petersen 2007

    5. Someday:-)


  3. Assigned: 9 Apr 07

    Topic: Philosophy of Artificial Intelligence


  4. Assigned: 6 Apr 07

    Topic: Computer Ethics (Part I)

    1. Required:

    2. Strongly Recommended:

      1. Friedman & Kahn 1992

        • Can be read as raising an objection to Moor 1979, esp. the section "Delegating Decision Making to Computational Systems", pp.306-307.

      2. Johnson 2002

        • An op-ed piece that provides an interesting counterexample to Friedman & Kahn 1992


  5. Assigned: 2 Apr 07

    Topic: Can programs be verified?

    1. Required:

    2. Strongly Recommended:

      1. De Millo, Lipton, & Perlis 1979
        • The "prequel" to Fetzer 1988.

      2. Ardis et al. 1989
        • The first of many sequels to Fetzer 1988; this one includes a nasty letter to the editor of CACM signed by 10 computer scientists protesting the publication of Fetzer 1988, a reply by Fetzer, and a self-defense by the editor.

    3. Recommended:

      1. any of McCarthy 1963, Naur 1966, Floyd 1967, or (especially) Hoare 1969
        • The 4 papers that started it all.

      2. Dijkstra 1975
        • An example of program verification in action.
        • For a classic textbook, see Gries 1981
        • For a course, petition to have CSE 451 taught!

      3. any of Pleasant et al. 1989, Fetzer 1989, Dobson & Randell 1989, Müller et al. 1989, Hill et al. 1989, Tompkins 1989
        • The resulting battle.

      4. Barwise 1989
        • Cooler heads prevail.

      5. Fetzer 1998
        • The last word?


  6. Assigned: 30 Mar 07 !!!

    Topic: What is the program-world relationship?


  7. Assigned: 29 Mar 07 !!!

    Topic: What is a computer program: Are computer programs theories?

    1. Required:

      1. Read the passages quoted from Johnson-Laird 1981, Pylyshyn 1984, and Johnson-Laird 1988 carefully.

      2. Simon 1996

        • This was originally written in 1969 and updated in 1981.

    2. Strongly Recommended:

      1. Weizenbaum 1976

        • Ch.5 is good on the nature of theories and models. (Be sure to download the missing page!)
        • Ch.6 is also good on computer programs as theories, on the potential evils of AI, and for his objections to Simon.
        • I would have required this had you not complained about too much reading ;-)

      2. Simon & Newell 1956

        • Makes many of the same points as Simon 1996, but goes into a bit more detail on the nature of theories and models.

    3. Recommended:

      1. Wilks's chapter in Partridge & Wilks 1990 has a confusing, but useful, overview of the many meanings of "theory" and "model". (But it's not yet on line.)

      2. Daubert v. Merrell 1993 has interesting observations on the nature of scientific theories and expertise.

        • Prof. Sargur Srihari recommended this to me, after his experience being called as an expert witness on handwriting analysis, on the grounds that his computer programs that could recognize handwriting were scientific theories of handwriting analysis.

      3. Green 2004 has a useful survey of different views of scientific explanation and scientific models embedded in a discussion of connectionism.


  8. Assigned: 26 Mar 07

    Topic: Can programs be copyrighted or patented?

    1. Required:

    2. Strongly Recommended:

    3. Recommended:


  9. Assigned: 21 Mar 07 (for the next two lectures)

    Topic: What is a computer program: What is software?

    1. Required:

    2. Strongly Recommended:

      1. Colburn 1999

      2. Suber 1988


  10. Assigned: 9 Mar 07 (for the next two lectures)

    Topic: What is a computer program: What is implementation?

    1. Required:

      1. Chalmers 1993a:

        • read "Short Abstract" & "Long Abstract"
        • read §§1-2
        • skim the rest

      2. Rapaport 1999

    2. Strongly Recommended:

      1. Putnam 1988
      2. Chalmers 1993b
      3. Read the rest of Chalmers 1993a
      4. Rapaport 2005

    3. Recommended:

      1. Suber 1997
      2. Suber 2002


  11. Assigned: 5 Mar 07 (for the next two lectures)

    Topic: What is hypercomputation?

    1. Required:

    2. Strongly recommended:

      • Read the sections of Copeland 2002 not explicitly listed above:-)

    3. Recommended:

      1. Eberbach & Wegner 2003
        • Another useful survey, but with some seriously misleading things to say about the nature of logic.

      2. On Putnam-Gold machines:

        1. John Case's COLT Page

          • Case is a former UB CSE faculty member; he'll be visiting for the 40th anniversary celebration on April 14.

        2. Nowak et al. 2002


  12. Assigned: 2 Mar 07

    Topic: What is a procedure? (Part II)

    1. Required:

      • Preston 2006

        • p.4, §"Aristotle", paragraph 2.
        • p.13, §"Dipert", last paragraph.
        • §"Centralized Control Model", pp.14-17.
        • §"CONTROL & IMPROVISATION", pp.23-28.
        • Skim the rest.

    2. Strongly recommended:

      • Read all of Preston 2006


  13. Assigned: 28 Feb 07

    Topic: What is a procedure? (Part I)

    1. Required:

    2. Strongly recommended:

    3. Recommended:

      1. Horsten & Roelants 1995
        • Not online; sorry!

      2. Cleland 1995
        • A reply to Horsten & Roelants 1995

      3. Cleland 2001
      4. Cleland 2002


  14. Assigned: 26 Feb 07

    Topic: What is a computer? (Part II: Philosophy, concluded)

    1. Required:

      1. Lloyd & Ng 2004
      2. Weinberg 2002

    2. Strongly recommended:

      At least one of:

      1. Piccinini 2006
      2. Piccinini 2007

    3. Recommended:

      1. Wolfram 2002-2003
      2. Schmidhuber 2006
      3. Powell 2006
      4. B.Hayes 2007

  15. Assigned: 23 Feb 07

    Topic: What is a computer? (Part II: Philosophy, cont'd)

    1. Required:

    2. Recommended:

      • Rapaport 1998, §1

        • §1 is actually more relevant to Searle 1990 than to Hayes 1997; it presents my understanding of what it means to say that cognition is computable (as opposed to "computational").
        • §§2-3 criticize two other theories of computationalism; you can just skim these for now.


  16. Assigned: 21 Feb 07

    Topic: What is a computer? (Part II: Philosophy)

    1. Required:

    2. Strongly recommended:

    3. Recommended:

      1. Piccinini 2003
      2. Rapaport (in press)


  17. Assigned: 5 Feb 07

    Topic: What is an algorithm? (Part I)

    1. Required:

      1. Henkin 1962, pp.788-791; skim the rest.

        • Discusses the history of logic and the foundations of math that led up to Turing's analysis.

      2. Davis 1987

        • Overlaps and extends Henkin's history, and provides a useful summary of Turing 1936.

      3. Herman 1983

        • Discussion (by a former UB CSE faculty member) of the informal notions of "algorithm" and "effective computability"; good background for Turing 1936.

      4. Turing 1936

        • Handed out in lecture (or read any of the online versions, but be wary of typos and limitations on usable software).
        • Concentrate on the informal expositary parts; the technical parts are, of course, of interest, but are rather difficult to follow, and incorrect in many parts, and can be skimmed.
        • In particular, concentrate on §§1-6 (study the simple examples of Turing machines carefully; skim the complex ones) and §9, part I (which elaborates on what it is that a human computer does).
        • §7 describes the universal Turing machine; §8 describes the Halting Problem. You can skim these sections.

    2. Strongly recommended:

      • Soare 1996 or 1999, §§1-3,4.5-4.6; skim the rest.

    3. Recommended:

      1. Browse through the "Examples of Algorithms"; enjoy the cartoons:-)

      2. Haugeland 1981

        • A good description of the syntax and semantics of formal systems and their relationship to Turing Machines.

      3. Boehm & Jacopini 1966

        • Uses flowcharts to prove that "go to" statements are eliminable from computer programs in favor of sequence, selection, and loops. Not for the faint of heart!


  18. Assigned: 2 Feb 07

    1. Required:

      1. Martinich:

        1. App. A ("It's Sunday Night and I Have an Essay Due Monday Morning"), pp.170ff
        2. App. C ("Scholarship: Notes and References"), pp.176ff

      2. Topic: What is a computer? (Part I: History)

        1. "A Very Brief History of Computers" (browse the linked websites)
        2. O'Connor & Robertson 1998, "Charles Babbage"
        3. Simon & Newell 1958, pp.1-3 (on Babbage); skim the rest.
        4. Ensmenger 2004

    2. Strongly recommended:

      1. Read the rest of Simon & Newell 1958.
      2. Someday, you must read Davis 2000

        • This, complemented by Aspray 1990, will give you a good background in the "logical history" of computers.
        • At least try to read his Introduction

    3. Recommended:

      1. Davis 1987
      2. Aspray 1990

        • This, complemented by Davis 2000, will give you a good background in the "engineering history" of computers.

      3. Robinson 1994

        • Robinson developed the "resolution" rule of inference used in automated theorem proving and knowledge representation & reasoning

      4. Browse through:

        1. Maxfield etc. 1998
        2. Copeland 2000
        3. Lee 2002
        4. Hoyle 2003
        5. Computer History Museum 2003
        6. Hitmill 2004


  19. Assigned: 31 Jan '07

    1. Required:

      1. Martinich, Ch. 5 ("Tactics for Analytic Writing"):

        1. §5 ("Scenarios"), pp.110ff
        2. §6 ("Counterexamples"), pp.112ff
        3. §7 ("Reductio ad Absurdum"), pp.121ff
        4. §8 ("Dialectical Reasoning"), pp.127ff

      2. Topic: What is engineering? (part II)

        1. Petroski 2003
        2. Loui 1987

    2. Strongly recommended:


  20. Assigned: 29 Jan '07

    1. Required:

      1. Martinich, Ch. 5 ("Tactics for Analytic Writing"):

        1. Intro + §1 ("Definitions"), pp.90-96
        2. §2 ("Distinctions"), pp.96-99
        3. §3 ("Analysis"), pp.100-106
        4. §4 ("Dilemmas"), pp.106-110

      2. Topic: What is engineering? (part I)

        Davis 1998 (Part I: "Introduction to Engineering")

        • Especially Ch.1 (pp.3-17), pp.25-28, 31-37.

    2. Strongly recommended:

      • Read the rest of Davis 1998 if you didn't read it all the first time:-)


  21. Assigned: 26 Jan '07

    1. Required:

      1. Martinich, Ch. 4 ("Composing"), pp.65-89.

        • In the search box, type: composing
          —the results may give you clickable links to what I'm pretty sure is the entire chapter! (Possibly depending on your browser.)

      2. Topic: What is science? (part II)

        Again, remember that our ultimate question is whether computer science is a science.

    2. Strongly Recommended:

      1. Read the rest of Papineau 1996

      2. Popper 1953
        • Strongly recommended by Albert Goldfain (ask him why in recitation or on the listserv;-)

    3. Recommended:

      1. Hempel 1966
      2. Kyburg 1968
      3. Ziman 1968
      4. Salmon 1984


  22. Assigned: 24 Jan '07

    1. Required:

      1. Martinich, Ch. 3 ("The Structure of a Philosophical Essay"), pp. 49-64.

      2. Topic: What is science? (part I)

        In doing these readings, remember that our ultimate question is whether computer science is a science.

        1. Kemeny 1959:

          1. Introduction (pp. ix-xii)
          2. Ch.5 ("The [Scientific] Method", pp. 85-105)
          • You can just skim Ch.10 ("What Is Science?", pp.174-183), because his answer is just this: A science is any study that follows the scientific method.

        2. Kolak et al. 2006

    2. Strongly Recommended:


  23. Assigned: 22 Jan 07

    1. Required:

      1. Martinich, Ch. 2 ("Logic and Argument for Writing"):
          §3 ("Cogent Arguments"), pp. 33-37;
          §4 ("Consistency and Contradiction"), pp. 37-40;
          §5 ("Contraries and Contradictories"), pp. 40-44;
          §6 ("The Strength of a Proposition"), pp. 44-48

      2. Topic: What is computer science? (part II)

        Again, keep in mind that your main goal in reading these is to look for each author's answer to our question. Consequently, at least on a first reading, you don't have to read the "irrelevant" parts quite as carefully. Below, I indicate which parts I think are of central importance for our present purposes and which parts you can just skim (i.e., read quickly):

        1. Hartmanis & Lin 1992, "Computer Science & Engineering" (pp. 163-168) and "Abstractions in Computer Systems" (pp. 168-174); skim the rest.

        2. Brooks 1996, pp. 61-64; skim the rest.

        3. Shapiro 2001

    2. Strongly Recommended:

      • Read carefully all the parts that you skimmed :-)

    3. Recommended:

      1. Bajscy et al. 1992
      2. Abelson & Sussman 1996, "Preface"
      3. Gal-Ezer & Harel 1998
      4. Jacob 1999
      5. Shagrir 1999
      6. Comp. Sci. & Telecom. Board 2001
      7. Johnson 2001
      8. Foley 2002
      9. Boston U. Dept. of CS 2003
      10. CC2001: just skim through this
      11. Parlante 2005
      12. Naur 2007

        • Naur (of "Backus-Naur Normal Form", if you know what that is) helped develop Algol (if you know what that is:-). This is Naur's Turing Award speech. He appears to be a very bitter man, but has some interesting things to say.


  24. Assigned: 19 Jan 07

    1. Required:

      1. Martinich, Ch. 2 ("Logic and Argument for Writing"):
          §1 ("What Is a Good Argument?"), pp. 19-24;
          §2 ("Valid Arguments"), pp. 24-32.

      2. Topic: What is computer science? (part I)

        Read each of the following slowly (i.e., one sentence at a time) and actively (i.e., think about each sentence; make notes in your Reading Journal). Keep in mind that your main goal in reading these is to look for each author's answer to our question. Consequently, at least on a first reading, you don't have to read the "irrelevant" parts quite as carefully. Below, I indicate which parts I think are of central importance for our present purposes and which parts you can just skim (i.e., read quickly):

        1. Newell, Perlis, & Simon 1967

        2. Knuth 1974: §§1-3; optionally, §4, also.
          • (The more mathematically inclined may wish to read the whole thing :-)

        3. Newell & Simon 1976, pp. 113-117 & "Conclusion" (pp. 125-126).
          • Skim the rest; we'll read it later. For now, concentrate just on what they have to say about what CS is.

        4. Denning, et al. 1989, pp. 9-12 (up to "Curriculum Model"), 16-17 (up to §1); skim the rest.

    2. Strongly Recommended:

      • Read carefully all the parts that you skimmed :-)

    3. Recommended:

      1. On argument analysis, to supplement Martinich, Ch. 2:

      2. On "What Is CS?":
        1. Arden 1980
        2. Krantz 1984
        3. Denning 1985
        4. Abrahams 1987
        5. Loui 1987

  25. Assigned: 17 Jan 07
    Topic:
    What is philosophy?

    1. Required:

      1. Audi, Robert (2001), "Philosophy: A Brief Guide for Undergraduates"
        • A good brief intro to what philosophy is and what its branches are.

      2. Martinich:
          pp. 5-8 (from the Introduction), and
          pp. 9-13 (from "Professor as Audience" and "Student as Author").

    2. Strongly recommended:

      • Rapaport, "What Is Philosophy? A Brief Essay"

      • Martinich, the rest of Ch. 1.

        • Note: This chapter will eventually be required, so feel free to read it all now :-)

      • Plato, The Apology
        • Various versions on-line
        • Plato's explanation of what Socrates thought philosophy was all about; a good intro to the skeptical, questioning nature of philosophy.

    3. Recommended:

      1. Martinich, Chs. 2-5; Appendices A, C

        • Note: These chapters will eventually be required, so feel free to read them all now :-)

      2. Woodhouse 2003, Chs. I-III (pp. 1-45).
        • A good intro to what philosophy is all about.

      3. Colburn 2000, Chs. 3-4 (pp. 19-50).
        • A good survey of some of the history of philosophy that is relevant to CS.

      4. Browse the readings cited on the "What Is Philosophy?" website.



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