Stanford University

CS 131 Computer Vision: Foundations and Applications

Fall 2015-2016


    •    Welcome to CS131!
    •    Schedule information may change during the quarter; please visit the Syllabus page regularly to stay up to date.
    •    Lecture time has changed to 1:30-2:50pm on Tuesdays and Thursdays at McCullough 115 due to the high volume of student enrollment.

Course Instructor:

Prof. Fei-Fei Li

Office: Room 246, Gates Building

Office hours: By Appointment

Dr. Juan Carlos Niebles

Office: Room 243, Gates Building

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


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 Forsyth & Ponce

Course Assistants:

Ranjay Krishna

Office: Room 247, Gates Building

Office hours: Monday, 2:00-4:00pm, Gates 260 

(Alan) Zelun Luo

Office hours: Thursday, 9-11am, Gates 260

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

Class Time and Location:

Lectures: Tuesdays and Thursdays at 1:30pm to 2:50pm at McCullough 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

You must use our template for your writeup. This is to provide practice for writing technical papers. All problem sets and programming assignments must be turned in to: GradeScope. Make an account and sign up for the class using the code: MKKRYM Additionally, all code must be zipped up with the name "" and submitted to

No paper submission is required for PSs or PAs.

Using Late Days:
 • You have 5 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.