Computation and Cognition: the Probabilistic Approach (Psych 204/CS 428, Fall 2017)


How can we understand intelligent behavior as computation? This course will introduce probabilistic modeling through probabilistic programs, and will explore the probabilistic approach to modeling human and artificial cognition. Examples will be drawn from areas including concept learning, causal reasoning, social cognition, and language understanding.

We will use Canvas to post announcements, collect assignments, and host discussion among students. We encourage students to post questions here instead of directly emailing the instructors: we hope students will attempt to answer each other's questions as well (TAs will verify the answers). Trying to explain a concept to someone else is often the best way to check your own knowledge.

Assignments and grading

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

Assignments should be submitted to Canvas in .pdf form; fixed-width font appreciated for code (e.g. using the editor at Homework assignments will be graded using letter grades:


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


There are no formal pre-requisites for this class. However, this is a graduate-level course, which will move quickly and have technical content. Students should be already familiar with the basics of probability and programming.

Other resources

In addition to the assigned readings below, here are notes from a few related short courses, that might prove useful:


Week of September 26

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

Homework: Exercises on Generative Models and (optionally) JavaScript Basics.


Week of October 3

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

Homework: Exercises on Conditioning and Patterns of Inference.


Week of October 10

Bayesian data analysis. Discussion on levels of analysis.

Homework: Exercises on Bayesian data analysis, also work on project proposals (see below).


Week of October 17

Inference algorithms.

Project proposals due on Friday!


Week of October 24

Resource-rational process models. Sequences of observations. Learning as inference.


Week of October 31

Learning compositional hypotheses. Learning continuous functions. Deep probabilistic models.


Week of November 7

Hierarchical models. Occam's razor.


Week of November 14

Mixture models. Unbounded mixture models.

Project update (preliminary paper) due on Friday!


Week of November 21

Thanksgiving -- no class!

Week of November 28

Social cognition. Natural language pragmatics and semantics.

Project peer-reviews due on Friday!


Week of December 5

Project presentations!

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

Extended class on 12/5 for presentations, no class on 12/7.

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 experiment 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).

Upload your proposal to Canvas as a PDF file by midnight on 10/20/2016.

Project update

Several 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. All together, these will probably take about 3 pages.

These preliminary results will be peer-reviewed: everyone will be asked to read and comment on one other team's project update.

Project presentation

Each person or team will have 7 minutes (5 minute presentation + 2 minutes for questions). 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: upload the presentation to this folder.

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. The easiest way is to download the pre-formatted template:

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 Tuesday, Dec. 12th.