Home Lectures and Readings Assignments and Exams Showcase

CS 148 fulfills the General Education Requirements (GER) as a Ways of Thinking/Ways of Doing (WAYS) course in the Creative Expression (WAY-CE) area.
To satisfy this category, students need to enroll under the Letter Grade grading option; the WAY-CE requirement is not met by the Credit/No Credit option.

Class “Engagement”

The quiz, extra credit points, class attendance, allowed use of a partner, in-person grading sessions, etc. are all designed to increase one’s “engagement” in the course. Admittedly, it is entirely possible to learn any highly technical subject matter at home, without attending class or even going to college for that matter. However, as a general education WAYS class, CS148 aims to increase those additional things learned (even often about the technology itself) through social interactions. In fact, one should be interacting quite a bit with others when trying to create compelling imagery as there is an artistic component – this will be salient for the class final project/image.

Course Announcements

09/23/2016Welcome to the CS 148 Fall 2016 Website!
09/27/2016Assignment 1 has been posted.
09/27/2016SCPD students will not be required to sign the attendance sheet, but will instead take the quiz in a take-home format at the end of the quarter.
10/04/2016Assignment 2 has been posted.
10/11/2016Assignment 3 has been posted.
10/18/2016Assignment 4 has been posted.
10/25/2016Assignment 5 has been posted.
11/01/2016Assignment 6 has been posted.
11/08/2016Assignment 7 has been posted.
11/10/2016Final project handout has been posted.
11/15/2016Assignment 8 has been posted.
12/1/2016Final project handout has been updated. There is no longer a final demo (aka no slides, no videos). DO NOT SHOW UP TO GATES B1 ON 12/14 DURING THE FINAL EXAM SLOT!


This is the introductory prerequisite course in the computer graphics sequence which introduces students to the technical concepts behind creating synthetic computer generated images. The beginning of the course focuses on using OpenGL to create visual imagery, as well as an understanding of the underlying mathematical concepts including triangles, normals, interpolation, texture mapping, bump mapping, etc. Then we move on to a more fundamental understanding of light and color, as well as how it impacts computer displays and printers. From this we discuss more thoroughly how light interacts with the environment, and we construct engineering models such as the BRDF and discuss various simplifications into more basic lighting and shading models. Finally, we discuss ray tracing technology for creating virtual images, while drawing parallels between ray tracers and real world cameras in order to illustrate various concepts. Anti-aliasing and acceleration structures are also discussed. The final class project consists of building out a ray tracer to create a visually compelling image. Starter codes and code bits will be provided here and there to aid in development, but this class focuses on what you can do with the code as opposed to what the code itself looks like. Therefore grading is weighted towards in person "demos" of the code in action - creativity and the production of impressive visual imagery are highly encouraged. Prerequisites: CS 107, MATH 51.

This is the first course in the computer graphics sequence at Stanford. The second course is CS248 and requires this course, CS 148, as a prerequisite. Topics include: Scanline Rendering; OpenGl pipeline; Triangles; Rasterization; Transformations; Shading; Triangle Meshes; Subdivision; Marching Cubes; Textures; Light; Color; Cameras; Displays; Tone Mapping; BRDF; Lighting Equation; Global Illumination; Radiosity; Ray Tracing; Acceleration Structures; Sampling; Antialiasing; Reflection; Transmission; Depth of Field; Motion Blur; Monte Carlo; Bidirectional Ray Tracing; Light Maps.


Meeting Times


CA Office Hours (subject to changes)


Piazza will be used for Q&A in CS 148. Please enroll yourself through Piazza.

For all other inquiries, you can email the course staff at cs148-aut1617-staff [at] lists [dot] stanford [dot] edu.