Course Description

Ever wonder how robots can navigate space and perform duties, how search engines can index billions of images and videos, how algorithms can diagnose medical images for diseases, how self-driving cars can see and drive safely or how instagram creates filters or snapchat creates masks? In this class, we will explore all of these technologies and learn to prototype them. 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 10-week course is designed to open the doors for students who are interested in learning about the fundamental principles and important applications of 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.

Teaching Assistants

Don Lee
Xiaoyan Wu

Class Time and Location

Tuesdays and Thursdays from 1:30pm to 2:50pm at Building 200-002.

Office Hours

Juan Carlos Niebles: By appointment.
Ranjay Krishna: Tuesdays 3pm to 4pm @Gates 247.
Don Lee: Mondays 5pm to 7pm @Gates 200.
Olivier Moindrot: Wednesdays 4:30pm to 6:30pm @Gates B30.
Xiaoyan Wu: Thursdays 3pm to 5pm @Gates 260.

Course Discussions

Stanford students: Piazza


Recommended but not required: Computer Vision: A Modern Approach by Forsyth & Ponce


Your assignment ipython pdfs will be submitted here. Use the code M6BYVM to join the class.

Assignment Details

There will be weekly homework assignments in this class. These assignments will mainly involve building out prototypes for applications that we will discuss in class. For example, you will learn to create your own instagram-like filters or snapchat-like masks or smart-car lane detectors.

Details on how to work on each assignment and how to submit here.

Grading Policy

Summary Assignments

Assignment 0 is a simple assignment to get you acquainted with python and basic libraries we will be using in the course. Each assignment (1 through 8) will be worth 8% each. You will have one week to complete every assignment. It will be due on Mondays at 11:59pm.


The final exam will be a 3 hour exam where you will be tested on the concepts and theories taught in the class.

Extra Credits

Throughout the course you will have opportunities to earn extra credit. They can be earned by completing the extra credit questions in every assignment. These extra credit points are designed to allow students to delve deeper into the topics that they find most interesting.

Class notes

The course staff believes that the best way to learn something is to teach it to someone else. Since we have changed the class and its assignments from previous years, we ask that all the students contribute to help teach one another by contributing to the class notes. On the first day of class, students will self-select themselves into 20 teams (1 for each of the 20 lectures in the course). Each team will be asked to write up detailed notes about the lecture. These notes will be worth 5% of your grade.

The class notes will be graded based on fluency (grammatically correct complete English sentences), consistency (the entire lecture should be a coherent message), coverage (all topics in the lecture are included). Each student in a group will also be asked to fill out a peer assessment form indicating each team member's individual contribution.

The class notes are due within a week of the lecture before class starts. So, the lectures for the Tuesday lecture will be due the next week on Tuesday at 1:30pm. The peer assessments are due 48 hours after the class notes. You can not use late days for the class notes.

Late policy

You will have a total of 5 late days that you can use in whichever assignments you prefer. There is a limit of 2 late days used per assignment, which means that the hard deadline for each assignment is on Wednesday at 11:59pm.

Once you have used all your late days (or 2 late days for an assignment), penalty is 25% for each additional late day.