AP/PHIL/COGS 3750 Philosophy of Artificial Intelligence
Fall 2011

Cognitive Science Program,
York University

Course Description

An introduction to Artificial Intelligence and the philosophical issues in Artificial Intelligence (AI). The goal is for students to be able to gain basic understanding of the cognitive architectures used by Al programmers, and reflect critically on research in Al from a philosophical perspective.


At least six credits in philosophy, including AP/PHIL 2100 3.00 and one of AP/PHIL 2160 3.00 or AP/PHIL 2240 3.00.

What's New


Prof. Yves Lespérance
Office: CSE 3052A
Tel: 736-2100 ext. 70146
Email: lesperan "at" cse.yorku.ca


Tuesday and Thursday, from 10:00 to 11:30 in VH 3009.

Instructor Office Hours

Tuesday and Thursday 16:00-17:00, and Friday 14:00-15:00.


Levesque, H.J. Thinking as Computation: A First Course, draft manuscript to appear, MIT Press, 2011.

Copies of this manuscript textbook will be sold at cost in class.

Evaluation Scheme

Programming assignments (2 @ 5% each)       10%
Midterm test       30%
Class presentation or term paper       40%
Class participation       20%
Total 100%

Guidelines for Class Presentation: Your task is to introduce the paper/topic you have been assigned and lead the discussion on it (contact the instructor to book a slot in the presentation schedule). Start by giving a 20min presentation to introduce the paper (topic, key concepts, main arguments, etc.) and list some issues (unclear aspects, criticisms, counter arguments, etc.) for later discussion. You may use Powerpoint or prepare an outline sheet to be distributed (send these to the instructor at least 24h ahead of time). After your presentation, lead a class discussion of the paper dealing with the issues you have identified and any other issues raised.

Guidelines for Term Paper: This should be on a topic related to the Philosophy of AI, possibly one covered in class (in this case your paper must go beyond what is covered in class), or possibly a new topic. The paper must present and critically discuss some of the literature related to the selected topic. First prepare a one page outline of your topic with a list of references, and submit it to the instructor by November 8 at the latest for approval. After your outline has been approved, proceed with your readings and writing the term paper. There is a length limit of 3000 words (excluding references). The term paper is due on December 6.

Tentative Schedule

The first half of the course will be an introduction to Artificial Intelligence with an instructor lectures formatfor the most part; some classes will also be held in the AP Labs in TEL 2114. The second half of the course will cover various topics in the philosophy of AI in a seminar format, with student presentations and discussion.

Readings and Lecture Transparencies


On the philosphy of AI:

Andy Clark, Being there : putting brain, body, and world together again. MIT Press, 1997. [On reserve in library.]

M. Bedau and P. Humphreys (eds.), Emergence, MIT Press, 2008. [On reserve]

R. Cummins and D.D. Cummins (eds.), Minds, Brains and Computers. Blackwell, Malden, MA, USA, 2000. [On reserve]

R. Penrose, The Emperor's New Mind. [On reserve]

R. Penrose, Shadows of the Mind.

J.R. Newman and E. Nagel, Godel's Proof.

W. Bechtel and G. Graham (eds.), A Companion to Cognitive Science. Blackwell, Malden, MA, USA, 1998. [On reserve]

Kenneth M. Ford, Clark Glymour, and Patrick J. Hayes (eds.), Thinking about android epistemology. [On reserve]

S. Franchi and G. Guzeldere (eds.), Mechanical Bodies, Computational Minds. MIT Press, Cambridge, MA, USA, 2005. [On reserve]

R. Pfeifer and C. Scheier, Understanding Intelligence. [On reserve]

Z. Pylyshyn, The Robot's Dilemma: The Frame Problem in AI. [On reserve]

J. Copeland, Artificial Intelligence: A Philosophical Introduction, Blackwell, Oxford, UK, 1993. [On reserve]

A Prolog textbook:

Clocksin, W.F. and Mellish, C.S., Programming in Prolog, (5th edition), Springer Verlag, New York, 2004.

AI textbooks:

Russell, S.J. and Norvig, P., Artificial Intelligence: A Modern Approach, 3rd edition Prentice Hall, 2010. Authors' web site, Publisher's web site. [On reserve]

Poole, D. and Mackworth, A. Artificial Intelligence: Foundations of Computational Agents,, Cambridge University Press, New York, 2010.

Nilsson, N.J., Artificial Intelligence: A New Synthesis,, Morgan Kaufmann, San Francisco, 1998.

On logic:

The material in the Levesque textbook should be sufficient. For more details on logc and its use in AI, see Chapters 7, 8, and 9 of the Russell and Norvig textbook. In PHIL 2100, the following textbook is used:

Logic: Techniques of Formal Reasoning (2nd Edition), by Kalish, Montague and Mar. Oxford University Press, 1980.

Some more mathematically advanced Logic textbooks are:

Herbert B.Enderton. A Mathematical Introduction to Logic. Academic Press, 2001.

Elliott Mendelsohn. Introduction to Mathematical Logic. Fifth edition. Chapman and Hall, 2009.

On knowledge representation:

Ronald J. Brachman and Hector J. Levesque, Knowledge Representation and Reasoning, Elsevier/Morgan Kaufmann 2004, ISBN 1-55860-932-6

Baral, C. Knowledge representation, reasoning, and declarative problem solving. Cambridge University Press, Cambridge/New York, 2003.

Genesereth, M.R. and Nilsson, N.J. Logical foundations of artificial intelligence. Morgan Kaufmann, Los Altos, CA, 1987.

On reasoning about action:

Reiter, R., Knowledge in Action: Logical Foundations for Specifying and Implementing Dynamical Systems, MIT Press, 2001. York Library eCopy, Book home page.

Using Prolog in the AP Labs

Students may use Prolog on the PCs available in the AP Labs in TEL 2003, 2027, 2032, 2114, 2116, 2118. Follow the AP Labs link for information on accounts, hours of operation, etc.

To use Prolog, open a terminal window and enter the following command:


This will load the Prolog software onto the PC and start Prolog.

Getting Prolog

SWI-Prolog provides versions of Prolog for Windows, Linux, and Mac OS X. Free software licensed under the Lesser GNU Public License. Look under downloads.

Running SWI Prolog on a Mac

(The process is similar on a Windows computer, but use Notepad to edit your Prolog program files.)

First download and install SWI Prolog by following instructions on the SWI-Prolog website.

Write your Prolog program in a file using TextEdit; save the file as a plain text file with extension .txt; then edit the file name to change the extension from .txt to .pl.

Then you need to open a new Terminal window. To do this, open a Finder window; in it go to Applications and then Utilities and double click on Terminal; this starts a new terminal window. (If you want, you can save Terminal on the dock for future use.)

When you start Terminal, your current directory will be your home directory. You should first change your current directory to be the one where you have your Prolog files. If your Prolog files are in the directory Documents/myProlog1/ you can make this your current directory by entering the command cd Documents/myProlog1/ and typing return. Then check that that you are in the right directory and that your Prolog files are there. To print the current directory, enter the command pwd. To list the files in the current directory, enter the command ls.

Suppose that the Prolog program you want to run is in the file named myProg1.pl.

First start Prolog by entering the command /opt/local/bin/swipl. This will print the Prolog start message, and then wait for you to enter something at the ?- prompt.

To load the file named myProg1.pl, enter [myProg1]. If successful, this will ouput something like % myProg1 compiled 0.00 sec, 944 bytes. (You can also give a full path name by putting it between single quotes, for example ['/Users/lesperan/Documents/myProg1.pl'].).

After you have done this, you can enter a query at the ?- prompt and Prolog will run your program to answer the query.

Keep on doing this until you have successful tested your program or found a bug.

You can exit Prolog by entering halt. at the ?- prompt.

If you find a bug in your program, use TextEdit to edit the file and fix the bug. Then restart Prolog, load the file again, and run queries again. Repeat this until your program is correct.

You can print your session (or save it as a pdf file) by using the Print command of Terminal; this prints everything that has been typed or displayed in the Terminal window so far.

About Prolog

A starting point is the Carnegie Mellon School of Computer Science Prolog repository.