Lectures on Digital Photography
An introduction to the scientific, artistic, and computing aspects of digital photography. Topics include lenses and optics, light and sensors, optical effects in nature, perspective and depth of field, sampling and noise, the camera as a computing platform, image processing and editing, and computational photography. We will also survey the history of photography, look at the work of famous photographers, and talk about composing strong photographs.
This course is based on CS 178 (Digital Photography), which I taught at Stanford from 2009 through 2014. I revised and taught the course again at Google in Spring of 2016, and these web pages are from the Google version. The course consists of 18 lectures. The topics, with dates, are given in the course schedule. The lectures were delivered live on Google's Mountain View campus, broadcast live to Google offices around the world, and recorded for later playback. The videos linked into these web pages are from those recordings, edited slightly to remove discussion of Google internal projects. Keynote slides from these lectures were converted to PDF files and linked into the schedule after each lecture.
I am making these materials freely available, but some of the photographs included in the lectures are individually copyrighted. It should be fine for teachers to re-use this material under fair use, but other uses may be protected. If you re-use the material in substantially the same form it is given here, I would appreciate an acknowledgement.
The course assumes no prior knowledge of photography. I also assume no programming experience. The only knowledge I assume is enough facility and comfort with mathematics that you're not afraid to see the depth-of-field formula in all its glory, and an integral sign here or there won't send you running for the hills. Some topics will require concepts from elementary probability and statistics (like mean and variance), but I define these concepts in lecture. I also make use of matrix algebra, but only at the level of matrix multiplication. Finally, an exposure to digital signal processing or Fourier analysis will give you a better intuition for some topics, but it is not required.
Taking photographs and improving your picture-taking skills are a good reason for taking this course. There were no formal evaluations (or grades) in the Google version of the course, but there were weekly optional photographic assignments, which are included in these web pages. These assignments talk about uploading photos to Google Photos, and then posting albums to a Google+ community. These instructions were relevant to Googlers during course but are now irrelevant. If you want to follow along and perform these assignments you'll need a camera. Since it's a course on digital photography, you'll need a digital camera. In particular, you'll need one with manual control over shutter speed, aperture, and ISO. It's also helpful if your camera has a variable zoom lens, but surprisingly, manual control over focus isn't as critical, since you can easily "fool" your camera into focusing at whatever distance you want. Your camera should also have a flash, as most do. You don't, however, need an SLR (single lens reflex camera). Many DSCs (digital still cameras, also known as point-and-shoots) offer enough flexibility. So do Mirrorless Interchangeable Lens (MIL) cameras. A cell phone won't suffice, though, because it doesn't have a controllable aperture.
I am a Professor Emeritus of Computer Science at Stanford, and Principal Engineer at Google, where I lead a team in Google Research that works on computational photography. Here is my Stanford home page, which includes a list of publications. On my home page is a summary of some of the projects I work on at Google.