Course Syllabus for CS 351:
LISP and Symbolic Computation



Chapter numbers refer to the text: Paradigms of Artificial Intelligence Programming.
  1. Introduction
    The need for symbolic computation. Why LISP is a good language for symbolic computation. Overview of some basic AI tools and techniques.
  2. LISP Introduction
    Chapters 1-3. Atoms, lists, S-expressions, functions, lambdas, predicates, conditionals, recursion, iteration, printing, reading, properties, a-lists.
  3. Search: The General Problem Solver
    Chapter 4. Means-ends analysis, defining operators, blocks-world planning, Sussman Anomaly, interacting goals.
  4. Pattern Matching: ELIZA
    Chapter 5. Pattern matching, rule-based translation, a simplistic natural-language dialog system.
  5. Search Tools
    Chapter 6. A general search program. Heuristic search, best-first search, beam-search, hill-climbing. Heuristic search for the web.
  6. 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.
  7. Logic Programming
    Chapter 11. Unification pattern matching. Backward chaining inference. Prolog. Writing programs in logic. Writing rules for efficient deduction.
  8. 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.
  9. Object Oriented Programming in LISP
    Chapter 13. CLOS: Common Lisp Object System. Classes, generic functions, and inheritance.