Skip to content
Switch branches/tags
This branch is 45 commits ahead of alecjacobson:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Computer Graphics CSC418/CSC2504 Summer 2020
Course Syllabus

image courtesy Tim Jeruzalski

Mondays, Wednesdays 13:00-14:00 on Zoom
Sarah Kushner

Tutorial will be held on Fridays 13:00-14:00 on Zoom

Course Overview

This course introduces the basic concepts and algorithms of computer graphics. It covers the basic methods needed to model and render 3D objects, including much of the following: graphics displays, basic optics, line drawing, affine and perspective transformations, windows and viewports, clipping, visibility, illumination and reflectance models, radiometry, energy transfer models, parametric representations, curves and surfaces, texture mapping, graphics hardware, ray tracing, graphics toolkits, animation systems.

Prerequisites: C/C++ Programming, Linear Algebra, Calculus,(course codes).

Discussion Board

Please post your questions about the lectures, readings, and assignment due dates on the Quercus discussion board. We will monitor this board and attempt to answer questions as they appear. Near deadlines responses may take longer, so please start assignments early. If your question is not being answered, you may ask it again at the tutorial or office hours.

For questions specific to each assignment, please post your questions as a GitHub issue on the assignment repository.

Required Textbook

The Book.

This class involves required reading from:

Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Peter Shirley, et al. 2015.

Digital e-book are available at CRC Press.

Students are expected to buy and read the specified chapters of this textbook. Exams and assignments will depend not only material covered during lectures, but also on material from the assigned readings.

Marking Scheme

% Item
1% Pre-test & survey
8% Assignment 1
8% Assignment 2
8% Assignment 3
8% Assignment 4
8% Assignment 5
8% Assignment 6
8% Assignment 7
8% Assignment 8
15% Midterm exam
20% Final exam

Lecture Schedule

Note: Most slides are adapted from Professor David Levin's offering of the course.

Week Topic / Event
May 4 Introduction, Demos of Solutions Assignment 1 (Raster Images) due 12/05
May 11 Assignment 2 (Ray Casting) due 20/05
May 18 No class on Monday (Victoria Day), Wednesday: Introduce Ray Tracing
May 25 Assignment 3 (Ray Tracing) due 02/06
June 1 Assignment 4 (Bounding Volume Hierarchy) due 09/06 11/06 (Note: ./intersections related portion only worth 10%)
June 8 Assignment 5 (Meshes) due 16/06 21/06 28/06 (Note: ./quad_subdivision related portion only worth 10%)
June 15 Monday: Meshes assignment, No class Wednesday
June 22 No class
June 29 No class Study for exam next week.
July 6 Monday: exam review, In class exam Wednesday July 8 (15% of grade)
July 13 Assignment 6 (Shader Pipeline) due 23/07 26/07
July 20 (Drop date) Assignment 7 (Kinematics) due 30/07 02/08 (Note: inverse kinematices I,i related portion only worth 10%)
July 27 Assignment 8 (Mass-Spring Systems) due 6/08 09/08
August 3 Computational Fabrication
August 10 Lectures: Intro to Geometry Processing and Physics Based Animation. Bonus Assignment due 16/08
August 17 Exam Review on Monday. Final exam held online 22/08 at 9PM EDT (20% of grade)

Reading Schedule

Week Topic / Event
May 4 Raster Images: Chapter 3
May 11 Ray Casting: Sections 4.1-4.4
May 18 Ray Tracing: Sections 4.5-4.9
May 25 Ray Tracing cont.
June 1 Bounding Volume Hierarchy: Section 12.3
June 8 Meshes: Section 12.1 & skim Chapter 11
June 15 Meshes cont.
June 22 No class
June 29 No class Study for exam next week.
July 6 Monday: exam review, In class exam Wednesday July 8 (15% of grade)
July 13 Shading: Review Chapters 6,7,8.1,8.2 & Read Sections 11.4,11.5 & 17
July 20 Kinematics: Sections 15.1-15.5 & 16.1-16.4
July 27 Mass Spring Systems: Section 16.5 & "Fast Simulation of Mass-Spring Systems" [Tiantian Liu et al. 2013]
August 3 None
August 10 Exam Review Study for exam next week.
August 17 Final exam (20% of grade)

Academic Honesty (required reading)

image courtesy Gavin Barill (class of 2017)

Assignment Policies

Assignments must be submitted electronically, using MarkUs.

Code that you submit to us must work on the CS Teaching Lab machines in order to earn credit.

0.007% off for every minute late.

All assignments must be completed individually.

Academic Honesty

Any code must belong to the student submitting it. Submitted assignments will be automatically analyzed to identify suspicious levels of code similarity. Consequences of committing an academic offence can be severe.

By enrolling in this course, students acknowledge that they have read and understand the University of Toronto's definitions and policy on Academic Integrity.


Course Page for Computer Graphics course



No releases published


No packages published