Computation and Cognition: the Probabilistic Approach (psych 204, spring 2015)


This course will introduce the probabilistic approach to cognitive science, in which learning and reasoning are understood as inference in complex probabilistic models. Examples will be drawn from areas including concept learning, causal reasoning, social cognition, and language understanding. Formal modeling ideas and techniques will be discussed in concert with relevant empirical phenomena.

Instructor: Noah Goodman (ngoodman at stanford dot edu)
TAs: Desmond Ong (dco at stanford dot edu) and Michael Tessler (mtessler at stanford dot edu)
Meeting time: Tue, Thu 3:15 - 4:30
Meeting place: Littlefield 103
Office hours:

Link to Piazza signup:

We encourage students to use Piazza for questions that are readily articulable. Piazza is a forum for questions & answers, and answers may be posed by both students and TAs. We strongly encourage students to answer questions, and TAs will verify the solutions.

Assignments and grading

Students (both registered and auditing) will be expected to do assigned readings before class. Registered students will be graded based on:

Send all assignment submissions and correspondences to psych204-spr1415-staff at lists dot stanford dot edu

Assignments should be in .pdf form; fixed-width font appreciated. Assignments will be graded using the following scheme:

After the first attempt of the problem set:

You will receive feedback on your work. If you receive half credit, you will have the opportunity for revision:


Readings for each week will be linked from the calendar below. (In some cases these will require an SUNet ID to access. See the instructor in case of trouble.) Readings will be drawn from the webbook Probabilistic Models of Cognition and selected research papers.


There are no formal pre-requisites for this class. However, this is a graduate-level course, which will move relatively quickly and have technical content. Students should be already familiar with the basics of probability and programming (or be willing to learn this background on their own).


Week of March 31

Introduction. Simulation, computation, and generative models. Probability and belief.

Homework: Exercises on Scheme Basics and Generative Models.


Week of April 7

Conditioning and inference. Causal vs. statistical dependency. Patterns of inference.

Homework: Exercises on Conditioning and Patterns of Inference.


Week of April 14

Sequences of observations. Bayesian data analysis. Discussion on levels of analysis.

Homework: Exercises on Bayesian data analysis.


Week of April 21

Social cognition.

Homework: Exercises on Inference about Inference, also work on project proposals (see below).


Week of April 28

Natural language pragmatics and semantics. Project proposals due on Friday!


Week of May 5

Learning as inference.


Week of May 12

Hierarchical models. Mixture models. Occam's razor.

Project update (preliminary paper) due on Friday!


Week of May 19

Inference algorithms, PPL implementation


Week of May 26

Resource-rational process models. Other topics.

June 2

Project presentations!

June 4

Project presentations (continued)!

Each project team will present a short summary. We'll go in reverse-alphabetical order.

Course Projects

Your final project is an opportunity to get in-depth experience applying the techniques we've discussed in class to a question that interests you. In choosing a project, you should draw on your own background, interests and strengths. You do not have to work on a project that relates directly to the topics covered in the classes and readings: other topics that pursue the general idea of probabilistic models of cognition are fine, and you should try to work on a project that captures your interests within that fairly broad scope. Working on existing research projects is okay, if you bring the techniques and ideas of the class to bear.

You are encouraged (but not required) to do projects in small groups of two or three people.

Projects will generally contain both a probabilistic model of some aspect of human cognition and a behavioral expriment testing the model. Some ways you can go:

In all cases, you are encouraged to consider multiple models (for example, several variants of your theory) and pay careful attention to data analysis (for example, by doing bayesian model selection).

With approval of the instructor, a project could focus on AI rather than human behavior: use an idea we've discussed in class to implement an interesting new AI system. Similarly projects could focus on inference and infrastructure in PPLs by building a better algorithm, implementing a useful automatic analysis of programs, etc.

A list of class projects done in previous versions of the course can be found here:

Project proposal

Your proposal should be no more than one page long (single spaced). Make sure that you cover the background, key question, and methods of your project. The background should include the topic and the context of your project, including other research in this area. The specific question you are planning to ask through your project should be clearly stated. You should briefly describe the methods you plan to use (your experimental design, your modeling approach, your data analysis, and so on).

Email your proposal to the instructor as a PDF file by midnight on 5/1/15.

Project update

Two weeks before your project presentation you should turn in a preliminary version of your paper. This should be a complete outline for all sections. It should have a full draft of your introduction and background and related work sections. In addition, it should have preliminary results from your modeling and/or experiments. Alltogether, these will probably take about 3 pages.

Email your preliminary report to the instructor as a PDF file by midnight on 5/15/15.

Project presentation

Each person or team will have 5 minutes to present their project. We will go in reverse-alphabetical order (last name). The presentations should describe your question, methods, and results at a high level.

Presentations should be in Google Drive Presentation format.

Students should upload their presentation (in google presentations format) here

For students who don’t like working in Google Presentations, you can do your presentation in powerpoint and convert it. Google drive can upload (and convert) slides from the following formats:

.ppt (if newer than Microsoft® Office 95), .pptx, .pptm, .pps, .ppsx, .ppsm, .pot, .potx, .potm, .odp

Students should check their conversion once they’ve uploaded it for errors. Presumably, one could also do the slides in Keynote, convert to PPT, and then convert to Google Slides, but we suspect the errors would compound.

Project writeup

Your final project should be described in the format of a conference paper, following the guidelines of paper submissions to the Cognitive Science Society conference: see the section "Submission formats" on this page. In particular, your paper should be no more than six pages long. Your paper should cover the background behind your project, the questions you are asking, your methods and results, and your interpretation of these results.

Email your paper to the instructor as a PDF file by midnight on 6/5/15.