Course Syllabus

Instructor: Prof. Thomas Serre. Office hours: TW 1-2pm | METCALF rm #343. Contact: 

Teaching Assistants:

Classes: TR 10:30-11:50 in CIT#219. Video lectures and slides will be posted on canvas. Additional online MATLAB tutorials will also be available to help you prep for the programming assignments.

Communication: We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates and the teaching staff. Rather than emailing questions, please post your questions on Piazza.

Find our class page at:

Use this link to sign up ( email address required).

CCV Accounts: CCV accounts are available for pickup during TA hours (see them listed above)! Log in here to check out the tutorials for this course! 

You can also download the VNC client (noted below) or simply SSH into your account to log into a remote computer to use Matlab (if you don't have it on your own computer). Note: You are not required to use Matlab via CCV, it is simply a resource for students who can't or would rather not run Matlab locally (also see Matlab Online described below). You do need your CCV account credentials to log into the website linked above to access the tutorials. 

CCV Virtual Network Computing (VNC) Client: Can be downloaded here. It is provides a graphical user interface (GUI) that makes it easier to run programs like Matlab over SSH connection. Follow the link to learn more about it and instructions for use. 

Anonymous Feedback Form: If you have any thoughts, specific feedback, or suggestions about anything regarding this course and its assignments, feel free to fill out this anonymous feedback form. We appreciate your input!

Matlab: Matlab will be used extensively throughout this course. You can download Matlab for free under Brown University's student license by going to this website and following the instructions: After logging in with your Brown credentials, you will be prompted to make a MathWorks account if you have not already done so. 

If you have any issues downloading Matlab, please post on Piazza or come to TA hours for help. An alternative to downloading Matlab locally is to use Matlab Online: (Links to an external site.). There is also a mobile app for Android and iOS:

Course description: An introduction to computational models of biological vision summarizing traditional approaches and providing experience with state-of-the-art methods. The course will be divided into two parts: In the first part, students will implement key components of a vision system constrained by the anatomy and the physiology of the primate visual cortex via a blend of readings, lectures, online tutorials and programming (MATLAB) assignments. In the second part of the course, students will work towards the completion of a final project (in team) where they will apply state-of-the-art methods to real-world problems.

Course objective: Computational modeling is one of the central methods in brain and cognitive science research, and recent developments in computational neuroscience, machine learning, and computer vision have provided a wealth of new tools for developing computational accounts of visual perception. The objective of this course is to provide students a toolkit (concepts, mathematical and computational methods) for modeling visual processes. At the end of this course, students will have gained knowledge of classical computational models of biological vision as well as the state-of-the-art in machine vision.

Collaboration Policy: Discussing the assignment with other students and possibly converging on a solution is allowed, though the answer should ultimately be yours. Written explanations and code must be your own. Please make sure to write down the name of your collaborator(s) in your submission.

Who should take this course: The course is designed for advanced students in cognitive science, psychology, neuroscience or computer science who are interested in developing computational models of visual perception. It is intended to provide an introduction to some current research issues in visual cognition, together with examples of the different research paradigms by which they might be investigated. The inherently interdisciplinary nature of the subject is reflected in the course, which brings together issues relating to the disciplines of visual perception, neuroscience, computer science and machine learning. 

Prerequisites: Comfort with basic linear algebra and at least one introductory course in computer science or programming or permission of the instructor. Overall basic familiarity with MATLAB or other programming language and/or willingness to do extra work to learn is expected. The course strongly emphasizes hands-on MATLAB homework assignments where students implement some of the computational models described in class. 

Course activities: Will consist of approximately 32 hours of in-class meetings, 12 hours of course preparation (readings, ~12 book chapters), 12 hours of online programming tutorials (6 tutorials), 48 hours of programming assignments (4 assignments), 20 hours of exam preparation and about 48 hours of work towards the final project. There is no textbook for the class.

Grades: 90-100 A, 80–90 B, 70–80 C, <70 NC







Final project 


Extra credit



General guidelines for turning assignments: Science thrives on clarity, much like any other endeavor that involves communication. For every assignment, you need to use canvas for electronic submission. Hand in a single zip file which includes your source code (MATLAB .m files) and a pdf file containing your report. The zip file should be titled "". In your pdf write-ups, you need to include answers and discussions to the problems as well as figures. For figures, please clearly indicate which problem or question they are relevant to. Each figure/image/plot must be labeled (e.g., the axes of a plot should have meaningful labels) and have a title. These are general requirements for the assignments, and more specific guidelines for each assignment will be provided.

Course Summary:

Date Details Due