CS 112 Introduction to Computer Graphics

University of California @ Irvine, Fall 2020

T/Th 11:00 am, online (via Zoom)

Instructor: Shuang Zhao (office hour: Wednesdays 2:30--3:30 pm, Online)

TA: Zhanhang (Macro) Liang (office hour: FridaysMondays 10--11 am, Online)



date topic recommended reading assignments
1Oct intro PA0
6Oct vectors and linear algebra chapter 2 (miscellaneous math) and chapter 5 (linear algebra)  
8Oct transformation 1 (2D transformations) chapter 6 (transformation matrices), sections 6.1 and 6.3  
13Oct transformation 2 (3D transformations) chapter 6 (transformation matrices), sections 6.2, 6.4 and 6.5  
15Oct transformation 3 (viewing) chapter 7 (viewing) PA1
20Oct rasterization 1 (triangles) chapter 3 (raster images), sections 3.1 and 3.2;
chapter 7 (Viewing), section 7.1.1;
chapter 8 (the graphics pipeline), section 8.1
22Oct rasterization 2 (antialiasing & Z-buffering) chapter 8 (the graphics pipeline), sections 8.2 and 8.3;
chapter 9 (signal processing)
27Oct shading 1 (illumination & shading) chapter 10 (surface shading), sections 10.1 and 10.2  
29Oct shading 2 (graphics pipeline & texture mapping) chapter 11 (texture mapping), sections 11.1 and 11.2 PA2
3Nov shading 3 (texture mapping cont.) chapter 11 (texture mapping), sections 11.3 and 11.4  
5Nov ray tracing 1 (introduction) chapter 4 (ray tracing)  
10Nov ray tracing 2 (acceleration) chapter 12 (data structures for graphics), sections 12.1 to 12.3  
12Nov no class N/A PA3
17Nov geometry 1 (introduction) chapter 15 (curves), sections 15.1, 15.2, 15.3  
19Nov geometry 2 (curves & surfaces) chapter 15 (curves), Sections 15.6.1  
24Nov animation 1 (introduction & mass-spring system) chapter 16 (computer animation), sections 16.1, 16.2  
26Nov no class (Happy thanksgiving!)    
1Dec animation 2 (simulation & kinematics) chapter 16 (computer animation), section 16.5  
3Dec light transport & materials N/A  
8Dec color N/A  


There will be four (4) medium-sized programming assignments (each worth 18%) and one (1) final project (worth 28%).

All regular projects should be done individually; the final project can be done in groups of up to three (3) people.

Late policy: for regular assignments, each late day = 20% off. We will not accept late submissions for the final project.

Due date: Wednesday, Oct 14 by 11:59 pm

See the assignment document here.

Due date: Wednesday, Oct 2829 by 11:59 pm

See the assignment document here.

Due date: Wednesday, Nov 11 by 11:59 pm

See the assignment document here.

Due date: Monday, Nov 30 by 11:59 pm

See the assignment document here.

About CS 112

Questions, help, discussion: The instructor is available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link also at the top of this page).

Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea unless you cite a source for it.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see UCI's Policy on Academic Honesty.

Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone. In particular, it's NEVER okay for you to see another student's homework writeup or another team's program code, and certainly NEVER okay to copy-paste parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.


There is no required textbook. The lecture slides and discussion materials, which will be distributed via Canvas, will be your main references.

The following is a list of good references for materials covered by this course.

Shirley Book
Steve Marschner and Peter Shirley.
"Fundamentals of Computer Graphics", 3rd or later edition. (Recommended as "Reading" of each lecture.)

by Tomas Akenine-Möller, Eric Haines, and Naty Hoffman.
"Real-Time Rendering", 3rd or later edition.