Stanford University

CS 131 Computer Vision: Foundations and Applications

Fall 2014-2015


    •    Welcome to CS131!
    •    Schedule information may change during the quarter; please visit the Syllabus page regularly to stay up to date.

Course Instructor:

Prof. Fei-Fei Li

Office: Room 246, Gates Building

Phone: (650) 725-3860

Office hours: Monday, 10:15-11:30am, Gates 246


Class forum on Piazza (please ask all questions here if possible):

Course Team Email (for privacy-sensitive questions):

Additional reference material (not required): Computer Vision: A Modern Approach by Forsythe & Ponce

Course Assistants:

Marius Cătălin Iordan

Office hours: Monday: 4:00-6:00pm, Gates 300. 

Yuke Zhu

Office hours: Wednesday: 10:30-11:30am, Gates 200 & 6:00-7:00pm, Gates 259.

For questions outside office hours, please use the class forum:

Class Time and Location:

Lectures: Monday, Wednesday

Final exam: Monday, December 8, 8:30 AM-11:30 AM in McCullough Bldg., Rm. 115

We may have a few sessions at irregular times; see the Syllabus.


Course Description:

What do the following technologies have in common: robots that can navigate space and perform duties, search engines that can index billions of images and videos, algorithms that can diagnose medical images for diseases, or smart cars that can see and drive safely? Lying in the heart of these modern AI applications are computer vision technologies that can perceive, understand and reconstruct the complex visual world. Computer Vision is one of the fastest growing and most exciting AI disciplines in today’s academia and industry. This course is designed to open the doors for students who are interested in learning about the fundamental principles and important applications of computer vision. During the 10-week course, we will introduce a number of fundamental concepts in computer vision. We will expose students to a number of real-world applications that are important to our daily lives. More importantly, we will guide students through a series of well designed projects such that they will get to implement a few interesting and cutting-edge computer vision algorithms.


Grading Policies:

Homework: 80%
 •  Assignment 0: 8%
 •  Assignment 1a (theoretical): 12%
 •  Assignment 1b (programming and writeup): 12%
 •  Assignment 2a (theoretical): 12%
 •  Assignment 2b (programming and writeup): 12%
 •  Assignment 3a (theoretical): 12%
 •  Assignment 3b (programming and writeup): 12%

Final exam: 20%

Turning in assignments

Problem Sets (PS0 - PS4):

Give a paper copy to the TAs in class on the due date, or turn in to the submission cabinet in the Gates building, near the east entrance, before 5pm on the due date. You can find a photo of the cabinet here. Your problem set may be written in any convenient format, as long as it's clearly legible.

Programming Assignments (PA1 - PA3):

You must use our template for your writeup. This is to provide practice for writing technical papers. To submit your PA, send an email to with these attachments:

 • your writeup, named "yourSUNetID_PA1.pdf". We prefer PDF format for your writeup (most editors can export to PDF).

 • A zip file containing your MATLAB code, named "".

No paper submission is required for PAs.

Using Late Days:
 • You have 7 free late days total
 • You can use up to 3 late days per assignment. (Homework will not be accepted more than 3 days late.)
 • If you have used all of your late days, there is a 25% penalty for each day late
 • Explicitly mark the number of late days you use on an assignment if you are using late days. For example, if you turn it in by 5pm the next day, write "1 late day." If it's 5:01 pm the next day, write "2 late days." It is an honor code violation to write down the wrong time. (If you turn in late and don't write the number of days, we'll round up to 3.)


We hope that you are familiar with:

 • College-level calculus (e.g. MATH 19 or 41) - You’ll need to be able to take a derivative, and maximize a function by finding where the derivative=0.

 • Linear algebra (e.g. MATH 51) - We will use matrix transpose, inverse, and other operations to do algebra with matrix expressions. We’ll use transformation matrices to rotate/transform points, and we’ll use Singular Value Decomposition. (These topics are important for the homeworks, but if you are a quick learner you should be able to learn them during the class if you haven’t yet. We will have review sessions and provide review materials.)

 • Basic probability and statistics (e.g. CS 109 or other stats course) - You should understand conditional probability, mean, and variance.

 • We also require a decent amount of programming skills, such as entry-level Matlab, and the ability to work in the Linux environment. If you are unsure about your background, we encourage you to try out Problem Set 0, which is a “normalizing” problem set for the class. PS0 will help you gauge if CS131 is the right level for you.