Introduction to Neural Coding and Computation


Eric Shea-Brown
325 Lewis Hall
Office hours: Thurs 2-3
Stephen Jonany
Lewis Hall 115

Office hours:

Tues 10:30-11:30
Weds 3-4
Thurs 10:30-11:30
Fri 3-5

NOTE: Please bring a laptop to class for interactive work (see computing notes below).

Canvas for HW, quizzes, and discussion board; the rest is below!


Required text: "Theoretical Neuroscience" by Abbott and Dayan.

Optional supplemental text: "An Introductory Course in Computational Neuroscience" by Miller.

Optional additional MATLAB reference: A student's guide to MATLAB for physical modeling. .pdf provided openly by authors Philip Nelson and Tom Dodson.

For those wanting another, sometimes more mathematical reference with all the derivations, Mathematics for Neuroscientists by Gabbiani and Cox is a wonderful place to head.

** See canvas site for HW, quizzes, and discussion board; the rest is here!**


Codes and data for lectures, lab exercises, and HW

Syllabus, supplemental slides, and readings

(1) Neural coding -- response statistics and signal decoding


  • Introduction to neurons and spike trains
  • Tuning curves
  • Introduction to probabilty
  • Neural responses and response variability
  • Response to high-dimensional stimuli: spike triggered averages and effective filters
  • The decoding problem, maximum likelihood and signal detection solutions
  • Higher, and hierarchical, signal encoding
  • MATLAB overview
  • Vectors, Matrices
  • Loops and logic
  • Random numbers + very basic stats
  • Plotting, visualization


  • (Required) Abbott and Dayan: Ch. 1 (OK to skip parts on autocorrelation)
  • (Optional) Miller: Sections 1.1, 1.2, 1.4.2, 1.4.3, 3.1, 3.3, and remainder of Ch. 3


    Weeks 1-2:

    Week 3-4:

  • Slideset on visual representations. Slideset on neural decoding and variability.
  • Rough handwritten notes on fano factor, balanced inputs, and maximum likelihood decoding from class.
  • Tutorial notes and practice exercises (not due) on maximum likelihood decoding
  • (2) Models of neuron spiking and feature "selection" and coding


    (3) Synaptic dynamics and neural netowrks

    (4) Population coding: Modern large-scale recordings from cortex and beyond

    • Weeks 9-10
    • Introduction to Python
    • The Allen Brain Observatory, presented by Dr. Saskia deVries

  • Course structure and grading

    Course grades (80%) are based on several extensive Problem Sets handed out in class and due on select Mondays at 3:30. Turn-in will be electronic (scanned, etc) -- details forthcoming. These Sets will combine programming, analytical work, and scientific reasoning. Additionally, very brief in-class quizzes will account for 20% of the grade (example quiz).

    Important formatting instructions: in your writeup please present all material for a given problem together -- e.g. under "Problem II" you'd have any and all code that you used for that problem, a written answer, plots that explain and back up your findings and answers, and any analysis. Then we'd go to the next problem. (Not stapling all code for all problems together as an appendix at the end.) You may find the publish(code.m) command in MATLAB helpful. You can print out your codes and plots and intermingle this with handwritten answers and explanations

    Late policy: In extenuating circumstances contact instructors.

  • Please bring a MATLAB-equpped laptop to class. There is also access to MATLAB at the ICL labs on campus.

      We'll use Python later into the class. To aid your transition to Python:

      Python tutorial, courtesy of Higham and MacMillen:
      • download higham_macmillen_python_tutorial.ipynb from the link "Codes and data for lectures and lab exercises" above
      • RECOMMENDED: Install python via the anaconda distribution (give this a quick google, and you'll get to a clickable installer for your machine), and run this on your own laptop. This will open a “jupyter” ipython notebook.  Work through it, clicking in each cell and then hitting shift-click (or cell —> run from top menu).

      • OR the directions below give on way to to run remotely that may still work:
      • go to and make a new account
      • title the project "python tutorial," hit create project
      • click on the project name
      • upload higham_macmillen_python_tutorial.ipynb
      • click files at the top
      • click on higham_macmillen_python_tutorial.ipynb
      • This will open a “jupyter” ipython notebook.  Choose the python 2 sagemath kernel from the kernel menu. Then work through the notebook, clicking in each cell and then hitting shift-click (or cell —> run from top menu).

    Religious Accommodation Policy: Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Faculty Syllabus Guidelines and Resources. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form available at (Links to an external site.).