CS 263: Artificial Intelligence

Hampshire College, Amherst MA
Spring, 2000


Lee Spector

Meeting times

Tuesdays and Thursdays, 10:30-11:50 AM


Adele Simmons Hall (ASH) Auditorium

Class web page


Class email list

cs263@list.hampshire.edu; subscribe by sending a message containing "subscribe cs263" to majordomo@list.hampshire.edu.


Artificial Intelligence (AI) is a branch of computer science concerned with the construction of computer systems that "think." This course is an introduction to the core ideas of AI through concrete, hands-on activity. We will use the Common Lisp programming language to build working AI systems. We will study a range of techniques and mechanisms, including pattern matching and production systems, semantic networks and frame systems, heuristic search, genetic algorithms, resolution theorem proving, STRIPS-style planning, symbolic learning algorithms, augmented transition networks, and neural networks. We will also discuss the philosophical foundations of AI, alternative approaches to AI (for example, symbolic, connectionist, and situated activity approaches), and the implications of AI for cognitive science more broadly. The class will meet twice weekly for one hour and twenty minutes.


Each student will be evaluated on the basis of participation, a final presentation, and a web-based portfolio that should contain both code and text.

Participation includes contributions to discussions both in the classroom and on the class e-mail list, along with the sharing of code via web-based portfolios.

Each portfolio's code should demonstrate the student's facility with the Lisp language and engagement with several of the class topics at the implementation level. This may be accomplished via programming exercises from textbooks, original utilities, and other projects developed during the semester. Ideally much of the code will be runable from the web; mechanisms that allow Lisp code to be run from web pages will be discussed and demonstrated in class.

Each portfolio's text should make it clear that the student has been reading and thinking about all of the class readings. It is not necessary that the text be structured in the form of academic term papers. Other acceptable formats include journal entries, informal discussions, dialogs, lists of frequently asked questions with answers, etc.; pretty much any format is OK as long as it is clear that the student has been reading and thinking about all of the class readings.

Each final presentation should showcase a project that uses artificial intelligence techniques for an advanced computing application. The choice of the particular application is left entirely to the student, although the professor will be happy to make suggestions. The presented application may have been implemented, or partially implemented, by the student during the semester; in this case the code should be included in the student's portfolio. But it is also acceptable for a student to present a "future work" project; in this case the presentation should be sufficiently detailed to convince the class that full implementation would be feasible.

Students are encouraged to update their portfolios continuously. There will be two portfolio reviews during the semester and a final review at the end of the semester.


Artificial Intelligence: A New Synthesis, by Nils J. Nilsson. San Francisco, CA: Morgan Kaufmann Publishers, Inc. 1998.
ISBN 1-55860-467-7 (cloth)
ISBN 1-55860-535-5 (paper)

ANSI Common Lisp, by Paul Graham. Englewood Cliffs, NJ: Prentice Hall. 1996.
ISBN 0-13-370875-6

Computation & Intelligence: Collected Readings, edited by George F. Luger. Menlo Park/Cambridge/London: AAAI Press/The MIT Press. 1995.
ISBN 0-262-62101-0


Adjustments to this schedule may be announced in class and additional readings may be distributed. Assigned readings should be read prior to the indicated classes.Items in [square brackets] are optional.


Date Topics Read Notes
Thursday, January 27 What is AI?, history, implications, class overview Nilsson Ch. 1, Luger Ch. 1, 2  
Tuesday, February 1 Lisp history, language overview, getting started with Lisp programming Graham Ch. 1, 2  
Thursday, February 3 Lisp lists and other data structures Graham Ch. 3, 4   
Tuesday, February 8 Lisp control, advanced function features, closures Graham Ch. 5, 6  
Thursday, February 10 Lisp I/O, symbols, numbers, macros Graham Ch. 7, 8, 9, 10  
Tuesday, February 15 Common Lisp Object System (CLOS), advanced Lisp topics Graham Ch. 11, 12, 13, 14   
Thursday, February 17 Stimulus-response agents, rule-based programming, expert systems Nilsson Ch. 2, 17.4, Luger Ch. [20], 21 Portfolio review
Tuesday, February 22 Neural networks Nilsson Ch. 3, Luger Ch. 12, 29  
Thursday, February 24 Machine evolution, genetic algorithms, genetic programming Nilsson Ch. 4, Luger Ch. 11  
Tuesday, February 29 Current research in genetic programming handouts  
Thursday, March 2 Planning and search Nilsson Ch. 7, 8  
Tuesday, March 7 Heuristic search Nilsson Ch. 9, [Luger Ch. 3]  
Thursday, March 9 Adversarial (game-tree) search Nilsson Ch. 12   
Tuesday, March 14 Spring Break    
Thursday, March 16 Spring Break    
Tuesday, March 21 Logic: propositional calculus and prediate calculus Nilsson Ch. 13, 15, [Luger Ch. 10]  
Thursday, March 23 Automatic theorem proving via resolution Nilsson Ch. 14, 16  
Tuesday, March 28 Knowledge representation Nilsson Ch. 17, 18, Luger Ch. [6], [7], 9, [13] Portfolio review
Thursday, March 30 Knowledge representation continued    
Tuesday, April 4 Machine learning Luger Ch. 15, 25  
Thursday, April 6 Learning and acting with Bayes nets Nilsson Ch. 20  
Tuesday, April 11 Advising/Exam Day    
Thursday, April 13 Natural language processing Nilsson Ch. 24, Luger Ch. 8  
Tuesday, April 18 Planning systems Nilsson Ch. 7, 10, 22, Luger Ch. 16, 17, [28]  
Thursday, April 20 Planning systems continued    
Tuesday, April 25 Supervenience in dynamic-world planning Nilsson Ch. 25, handouts  
Thursday, April 27 Review and discussion    
Tuesday, May 2 Final presentations    
Thursday, May 4 Final presentations    
Thursday, May 11 (No Class)   Portfolios must be complete