Course page

VS265: Neural Computation - Fall 2022

This course provides an introduction to theories of neural computation, with an emphasis on the visual system. The goal is to familiarize students with the major theoretical frameworks and models used in neuroscience and psychology, and to provide hands-on experience in using these models. Topics include neural network models, principles of neural coding and information processing, self-organization (learning rules), recurrent networks and attractor dynamics, probabilistic models, and computing with distributed representations.

Instructor:  Bruno Olshausen,, office hours immediately after class


Lectures:  Tuesdays & Thursdays 3:30-5, Anthropology & Art Practice Building, Room 155

Grading:  Based on problem sets (60%) and final project (40%)

  • Problem sets will be posted on this webpage and should be submitted via bCourses.
  • Late problem sets will be penalized 10% per day.
  • Your lowest scoring problem set will be dropped at the end of the semester.
  • You may work in small groups (2-3) on the problem sets but are responsible for submitting individually.
  • Final project guidelines (more details to come):
    • 5 page report + poster or oral presentation at project presentation day (early December).
    • You may work in teams of 3-4 students.
    • The project should explore one of the covered in class in more depth, either mathematically or computationally, or it can also be a critical analysis of the prospects for how these approaches can be used to inform our understanding of the brain.


  • [HKP] Hertz, J. and Krogh, A. and Palmer, R.G. Introduction to the theory of neural computation. Amazon
  • [DJCM] MacKay, D.J.C. Information Theory, Inference and Learning Algorithms. Available online or Amazon
  • [DA] Dayan, P. and Abbott, L.F. Theoretical neuroscience: computational and mathematical modeling of neural systems. Amazon
  • [SL] Sterling, P. and Laughlin, S.  Principles of Neural Design.  MITCogNet

Discussion forum:  We have established a Piazza site where students can ask questions or propose topics for discussion.

Final project suggestions:  This document provides some suggestions to get you thinking about a topic for your final project.

Project presentation day schedule

Topic and Assignment Schedule

The first ten weeks are subdivided into five topic/problem set modules, each spanning two-weeks.  The remaining five weeks are devoted to the final project.

Topic Assignment Release Date Due Date
1. Biophysics of computation Problem Set 1   |  Dataset Aug. 30 Sep. 8
2. Sensory coding Problem Set 2   |  Dataset Sep. 13 Sep. 22
3. Representation learning Problem Set 3   |   Dataset Sep. 27 Oct. 11
4. Attractor networks and probabilistic models Problem Set 4  |   Dataset Oct. 13 Oct. 26
5. Computing in distributed representation Problem Set 5 

Dataset (pt1) / Notebook (pt2)

Oct. 25 Nov. 8
Final Project Proposal Nov. 10
Final Project Presentation Dec. 8 (tentative)
Final Project Writeup Dec. 13 (tentative)


Course intro:  Welcome/Course logistics | Aug. 25

Topic 0: Introduction to Computational Neuroscience  | Aug. 30

Topic 1a: Biophysics of computation  | Sept. 1, 6

Topic 1b: Physics of computation  | Sept. 8

Topic 2a: Sensory coding | Sept. 13

Topic 2b: Neural encoding and decoding | Sept. 15

Topic 2c: Efficient coding | Sept. 20

Topic 2d: Auditory coding | Sept. 22

Topic 3: Representation learning | Sept. 27 – Oct. 6

Topic 4a: Attractor dynamics | Oct. 13, 18

Topic 4b: Probabilistic models | Oct. 20 -25

Topic 5: Computing with distributed representations | Oct. 27 – Nov. 3

Topic 6: Advanced topics | Nov. 8 – Dec. 1