CS 263: Artificial Intelligence Hampshire College, Amherst MA Spring, 2000 |
|||||||||||
|
Description
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.
Evaluation
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.
Texts
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
Schedule
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 |