COMP_SCI 344: Design of Problem Solvers



COMP_SCI 348 and either COMP_SCI 325 or equivalent Lisp experience


Principles and practice of organizing and building AI reasoning systems. Topics include pattern-directed rule systems, truth-maintenance systems, and constraint languages.

  • This course satisfies the AI Breadth & Project Requirement

REQUIRED TEXTS: Forbus, K. and de Kleer, J. Building Problem Solvers, MIT Press

COURSE COORDINATOR: Prof. Kenneth D. Forbus

COURSE GOALS: Building software that reasons is one of the key activities of artificial intelligence.  Such software lies at the heart of many of today's interesting technologies, such as on-board diagnosis systems, intelligent CAD systems, shopbots, natural language processing systems, and intelligent tutoring systems and learning environments.  Reasoning software is also used as a component in building cognitive simulations, software designed to model aspects of human cognition.  This course will teach you how to build such software.  What you should know after taking this course will include:

  • A variety of ways to build AI reasoning systems.
  • Tradeoffs that designers of reasoning systems face, and typical categories of solutions.
  • How truth-maintenance systems work.
  • How to use large-scale knowledge bases in building problem solvers.
  • How to use analogical processing in building problem solvers.

During the course you will be doing a lot of programming -- but very little of it from scratch!  Instead, you'll be working with software modules we've developed, using them, modifying them, and sometimes significantly extending them.   This way you spend more time learning the ideas than polishing your coding skills (although you will have ample opportunity to improve those as well).

In addition to the material in the textbook, we cover several advanced topics, including using large knowledge bases, building federated reasoning systems, and analogical reasoning.   You will be working with FIRE, a new prototype reasoning system built at Northwestern that uses the ResearchCyc knowledge base.

PREREQUISITES: COMP_SCI 348 and either COMP_SCI 325 or equivalent Lisp experience


  • Searching and problem spaces
  • Pattern-directed inference systems
  • Fundamentals of truth maintenance systems
  • Logic-based TMS
  • Assumption-based TMS
  • Reasoning with large knowledge bases
  • Integrating special-purpose reasoning engines
  • Analogical reasoning
  • Other topics TBD

COMPUTER USAGE: This course is taught by a combination of lecture and studio instruction.  We are relying on enough students bringing notebooks/tablets to class so that every pair of students has a machine.