Computer Graphics
Fall 2021
Instructor: Nima Kalantari

Course information

Time and location: TR 2:20 - 3:35 pm in HRBB 113
Office hours: TR 4:00 - 5:00
Office location: 406 Peterson
Campuswire: Link in the syllabus

TA: Pedro Figueiredo
Office hours: WF 2:00 - 4:00
Via Zoom: Link in the syllabus


This course is an introduction to the foundations of 3-dimensional computer graphics. Topics covered include 2D and 3D transformations, hidden surface removal and rasterization, shading, lighting models, and texture mapping. We also discuss geometric modeling and curves, as well as ray tracing.


The main prerequisite listed in the course description is CSCE 221. However, the students are expected to be comfortable with C/C++ as there will be significant amount of programming in this class. The students should also be familiar with linear algebra. A prior course in linear algebra (e.g., MATH 304) is more than sufficient.


The following books are recommended:

The OpenGL® Programming Guide, by John Kessenich, Graham Sellers, and Dave Shreiner, 9th Edition
Fundamentals of Computer Graphics, by Steve Marschner, Peter Shirley, 4th Edition

The readings from Fundamentals of Computer Graphics are referred to as MS (Marschner and Shirley).


Late Submissions

You will lose 20% from each assignment for each day that it is late. However, there will be 5 granted late days for the entire course. You are free to use it for any of the assignments. You will not get any bonuses for any of the unused late days. All the assignments are due at 11:59 pm on Canvas. Note that, one minute over and 23 hours over both count as one full day.

Academic Integrity

All the assignments in this class are individual. Therefore, all the codes need to be written by the student. If indicated in the assignment’s instruction, the use of external libraries for performing basic operations is allowed. However, using an outside source code is NOT permitted. Moreover, collaborating with other students on assignments beyond general discussions is NOT allowed. In general, looking at other students’ code and/or written answers is NOT allowed. If the students have any questions regarding this issue, they should contact the instructor. The students should not post their code online even after the deadline for the assignment has passed.


Date Topic Slides Reading Assignments
Aug 31 Introduction and Overview pptx MS 1
Sep 2 Linear Alegbra Overview pptx MS 2 & 5 HW 1 Out
Sep 7 Rendering Overview pptx
Sep 9 Transformations (2D) pptx MS 6.1 & 6.3-4 HW 1 Due
Sep 14 Transformations (3D) pptx MS 6.2 & 12.2 HW 2 Out
Sep 16 OpenGL pptx MS 17.1-9
Sep 21 Viewing Transformations pptx MS 7
Sep 23 Viewing Transformations See above MS 7
Sep 28 Clipping and Viewport pptx MS 8.1.3-6 & 8.4
Sep 30 Clipping and Viewport See above MS 8.1.3-6 & 8.4
Oct 5 Rasterizing Lines and Triangles pptx MS 8.1.1-2 & 8.2.1-3 & 2.7 HW 2 Due
Oct 7 Rasterizing Lines and Triangles See above MS 8.1.1-2 & 8.2.1-3 & 2.7
Oct 12 Antialiasing pptx MS 9 & 8.3 HW 3 Out
Oct 14 Color pptx MS 19 & 20
Oct 19 Shading and Texture Mapping pptx MS 10 & 11.1-4
Oct 20 Assignment Deadline HW 3 Due
Oct 21 Shading and Texture Mapping See above MS 10 & 11.1-4
Oct 26 Midterm Review pdf
Oct 28 Midterm
Nov 2 Shading and Texture Mapping See above MS 10 & 11.1-4 HW 4 Out
Nov 4 Shading and Texture Mapping See above MS 10 & 11.1-4
Nov 9 Midterm Solution and Shadows pptx
Nov 11 Ray Tracing (Intro) pptx MS 4 HW 4 Due
Nov 16 Ray Tracing (Nuts and Bolts) pptx MS 4 HW 5 Out
Nov 18 Ray Tracing (Nuts and Bolts) See above MS 4
Nov 23 Geometry pptx MS 22.1 & 22.5
Nov 25 Thanksgiving -- No Class
Nov 30 Curves and Surfaces pptx MS 15 HW 5 Due
Dec 2 Mesh Processing
Dec 7 Review for Final

*Schedule is subject to small changes.