Stanford University

CS 131 Computer Vision: Foundations and Applications

Fall 2016-2017


    •    Welcome to CS131!
    •    Schedule information may change during the quarter; please visit the Syllabus page regularly to stay up to date.
    •    Lecture location has changed to 370-370 due to the high volume of student enrollment.

Course Instructor:

Prof. Fei-Fei Li

Office: Room 246, Gates Building

Office hours: Tuesday, 3-4pm

Dr. Juan Carlos Niebles

Office: Room 243, Gates Building

Office hours: By Appointment


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:

Alan Luo (Head TA)

Office hours: Thursday, 10am-12pm, Huang Basement

Leonid Keselman

Office hours: Tuesday and Thursday, 12-1pm, Huang Basement

Lucas Liu

Office hours: Tuesday, 9:30-11:30am, Huang Basement

Vinaya Polamreddi

Office hours: Wednesday, 12:45-2:45PM, Huang Basement

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

Class Time and Location:

Lectures: Tuesdays and Thursdays 1:30pm to 2:50pm in 370-370

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%
 •  HW0 (theoretical + programming): 8%
 •  HW1 (theoretical): 13%
 •  HW2 (programming and writeup): 13%
 •  HW3 (theoretical): 13%
 •  HW4 (programming and writeup): 13%
 •  HW5 (theoretical + programming): 20%

Final exam: 20%

Extra credit: 2% for students who participate actively on piazza

Turning in assignments

We strongly recommend using LaTex, but also accept other typed or scanned assignment. However, students must be responsible for the legibility and we reserve the right to deduct points if the solution is not clear. Here is the template for Latex. 

All assignments (with code attached) must be turned in to: GradeScope. Make an account and sign up for the class using the code: MBRJEM.

All code must also be submitted via email to as a zip file "yourSUNetID_HW[0-5]".

No paper submission is required for HWs.

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.)
 • Please put number of late days used in the first page of your pdf.
 • 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. HW0 will help you gauge if CS131 is the right level for you.