Reasoning and Learning in Cognitive Systems (CS 379B)

(Previously CS 329 / Topics in Artificial Intelligence)

Stanford University - Winter 2006

This course counts toward elective credit in AI for CS masters students with an advisor's approval and as an advanced small seminar for Symbolic Systems students.

Hard-copy readings will be available in a box outside Gates 222 for those who could not pick them up in class.

Course Instructor

Pat Langley   (
Computational Learning Laboratory
Center for the Study of Language and Information
Stanford University, Stanford, CA 94305
(650) 723-8260

Course Summary

One ability that distinguishes humans from other organisms is their ability to handle tasks that require reasoning and problem solving. Humans also exhibit learning on such problems, in that they improve this ability with experience. Unfortunately, recent research on computational learning has focused on tasks like classification and reactive control, which, in their standard forms, do not require reasoning. Yet uncovering the relationship between reasoning and learning seems central to understanding the nature of intelligence.

This course will examine the intersection of reasoning, problem solving, and learning from a computational perspective. We will cover material from the literatures on both artificial intelligence and cognitive science, with an aim to understanding common principles that underly human and computer reasoning, as well as their differences. Each meeting will combine a lecture on key ideas with group discussion of papers that describe implemented systems that reason and learn. Our aim will be to understand, in computational terms, how one can represent, utilize, and acquire knowledge for use in reasoning and problem solving.

Course Logistics


Course prerequisites include a basic familiarity with concepts from artificial intelligence and cognitive science. The class will involve some programming, but students from outside computer science should not feel daunted; we will use a high-level language that does not require experience with traditional programming formalisms and that is much easier to learn. However, participants should be able to think computationally in terms of symbolic or logical knowledge structures and the mechanisms that operate on them. Most important, they should be interested in the mechanisms that underlie both performance and learning in reasoning and problem solving.

Assignments and Grading

The course will interleave formal lectures with discussions of papers from the relevant literature. To ensure that participants have digested the material, they must (except for the first meeting) bring one question that arose from their reading of each assigned paper, which we will use to direct discussion.

Participants will also complete exercises that involve building four distinct types of reasoning systems, which they should turn in at the beginning of the meeting for which they are due. Each student will also have a total of four free late days to use as he sees fit on the assignments. Once these late days are exhausted, we will penalize any exercises turned after its due date at the rate of 20 percent per calendar day late (or fraction thereof).

Participants' grades will be based on the correctness of their answers to exercises (15 percent each or 60 percent taken together) and on their contributions to class discussion, including their questions (40 percent).


There does not exist a textbook on the content of this course. Thus, reading assignments will come from the broader literature in AI, cognitive science, and machine learning. When possible, we will provide URLs for papers on the course Web site; when these are not available, we will pass out hard copies in the meeting before the one in which we discuss the reading.

If you would like more information about the course, send electronic mail to