Course Syllabus for CS 351:
LISP and Symbolic Computation
Chapter numbers refer to the text:
Paradigms of Artificial
Intelligence Programming.
- Introduction
The need for symbolic computation. Why LISP is a good language for symbolic
computation. Overview of some basic AI tools and techniques.
- LISP Introduction
Chapters 1-3. Atoms, lists, S-expressions, functions, lambdas, predicates,
conditionals, recursion, iteration, printing, reading, properties, a-lists.
- Search: The General Problem Solver
Chapter 4. Means-ends analysis, defining operators, blocks-world planning, Sussman
Anomaly, interacting goals.
- Pattern Matching: ELIZA
Chapter 5. Pattern matching,
rule-based translation, a simplistic natural-language dialog system.
- Search Tools
Chapter 6. A general search program.
Heuristic search, best-first search, beam-search, hill-climbing. Heuristic
search for the web.
- Advanced LISP
Chapters 9-10. Macros, lexical
scoping, lexical closures, special variables, dynamic scoping, multiple values.
Consing, destructive functions, and garbage collection. Interning symbols.
Caching. Delaying computation. Avoiding unnecessary consing.
- Logic Programming
Chapter 11. Unification pattern matching. Backward chaining inference. Prolog.
Writing programs in logic. Writing rules for efficient deduction.
- Natural Language
Chapter 19. Syntactic parsing with a phrase-structure grammar. Using caching
to improve parsing. Semantic and case-frame analysis. Using semantic
constraints to resolve ambiguity.
- Object Oriented Programming in LISP
Chapter 13.
CLOS: Common Lisp Object System. Classes, generic functions, and inheritance.