Leonid Sigal

Associate Professor, University of British Columbia



Home | About | Biography | CV Students and Collaborators | Research | Teaching | CPSC 425
Winter 1, 2020
CPSC 425
Winter 2, 2019
CPSC 425
Winter 2, 2018
Winter 2, 2018
CPSC 425
Winter 1, 2018
Winter 2, 2017
CMU 15-869
Fall 2012
CMU 16-824
Spring 2012
CSCD18 Fall 2008 CSCD18 Fall 2007 Publications | Code and Data |


Dep. of Computer Science
University of British Columbia
ICCS 119
2366 Main Mall
Vancouver, B.C. V6T 1Z4

Phone: 1-604-822-4368
Email: lsigal at cs.ubc.ca

CSCD18, Computer Graphics

Fall 2008

One stop shopping for lecture notes, assignments, readings, etc.

General Information

Intructor: Leonid Sigal, Ph.D. (lsigal@utcs.utoronto.ca)
Office: SW626
Office Hours: Monday, 1-2pm (or send email for appointmet)

Teaching Assistant: Alexander Wong (wongam@cs.toronto.edu)
Office: TBA week by week as needed
Office Hours: TBA week by week as needed

Lectures: Monday, 10-11am, in BV-361
Wednsday, 10-11am, in BV-363
Tutorials: Monday, 11-12pm in BV-462
Board: https://portal.utoronto.ca/

Course Description

This course introduces the basic concepts and algorithms of computer graphics. It covers the basic methods needed to model and render 2D and 3D objects, including much of the following: graphics displays, rastering, parametric representations, curves and surfaces, geometrical optics, affine and perspective transformations, visibility, illumination and reflectance models, radiometry, energy transfer models, parametric representations, curves and surfaces, texture mapping, ray tracing, graphics toolkits, animation systems. The course also introduces the students to standard graphics packages like OpenGL and GLUT.

Course Prerequisites

MATB24H and MATB42H and [CSCB09H or proficiency in C] and CSCB63H and [CSCC36H or CSCC50H ] and [CGPA 3.0 or enrolment in a CSC subject POSt]

The student is expected to review material in order to be comfortable with elementary linear algebra, elementary geometry, and vector calculus (including partial differentiation).


Currently, there is no textbook that reflects all the material covered in this class. Textbook material will be supplimented by in-class lectures and online notes (lecture slides and course notes). Lecture slides and online notes are required. Textbook sections listed next to each lecture also constitute required reading.

Fundamentals of Computer Graphics, Second Edition Fundamentals of Computer Graphics, Second Edition, by Peter Shirley, Michael Ashikhmin, Michael Gleicher, Stephen Marschner, Erik Reinhard, Kelvin Sung, William Thompson, Peter Willemsen.

OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL, Version 1.2 (3rd Edition) OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL, Version 2.1 (6th Edition), by OpenGL Architecture Review Board, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis. Available at bookstore and Amazon.com. Older version is also available on-line.

OpenGL(R) Reference Manual: The Official Reference Document to OpenGL, Version 1.2 (3rd Edition) OpenGL(R) Reference Manual: The Official Reference Document to OpenGL, Version 1.2 (3rd Edition), by Dave Shreiner. Available on-line.


Other useful textbooks:


Assignments 1: 15%
Assignments 2: 15%
Assignments 3: 10%
Assignments 4: 10%
Mid-term: 15%
Final Exam: 35%

To pass this course, you must achieve at least 35% on the final exam.

Assignment Policies:

  • Assignments 1, 2, and 3 will have a written component and programming component (assignment 4 will only have a programming component).
  • Written assignments are due in the drop box before class on the due date specified, which will always fall on a Wednsday. Written assignments must be written clearly (or typed). If the TA can't read the solution, points will be deducted accordingly.
  • Programming assignments (except assignment 4) will be due by 11:59pm on the due date, which will fall on a Friday.
  • Assignment 4 will be due on the last day of classes (Dec. 1).

Late Policy

  • For each day late, including weekends, 15 percent of the total possible points will be deducted (a day ends at the due time). For example, if a written assignment is due on Wednesday, no late penalty will be assessed if it is turned in by 9:59am on Wednesday. If it is turned in after 9:59am on Wednesday but before 9:59am on Thursday there will be a 15 percent penalty. Since the drop box is not going to be checked during the weekend (i.e. after 9:59am on Friday), it is your responsibility to submit the late written assignment by e-mail to TA before the designated time during the weekend. Otherwise, any assignment submitted to the drop box during the weekend will automatically loose th maximum of 75 percent of the total possible points.
  • No work will be accepted more then 5 days late.
  • Beyond this, no extensions will be granted on homework assignments, except in extreme cases (e.g. medical reasons). Please plan ahead.

Scholarly Conduct

Plagiarism is a serious academic offence; the work submitted must be your own. If you have exchanged ideas with a fellow student and thus have answers which might be falsely construed as being plagiarised, you should state this.

  • Tests and exams in this course must be strictly individual work.
  • Assignments will be strictly individual work (except for Assignment 4, where groups may be allowed).
  • For programming components of an assignment: Collaboration on a programming component by individuals (whether or not they are taking the class) is encouraged at the level of ideas. Feel free to ask each other questions, brainstorm on algorithms, or work together at a blackboard. Be careful, however, about copying the actual code for programming assignments or merely adapting others' code. This sort of collaboration at the level of artifacts is permitted if explicitly acknowledged, but this is usually self-defeating. Specifically, you will get zero points for any portion of an artifact that you did not transform from concept into substance by yourself. If you neglect to label, clearly and prominently, any code that isn't your own or that you adapted from someone else's code (from another student in the class, from a previous year's assignment, or from the web), that's academic dishonesty for the purpose of this course and will be treated accordingly.
  • The principle behind the collaboration rule is simple: I want you to learn as much as possible. I don't care if you learn from me or from each other. The goal of artifacts (programming assignments) is simply to demonstrate what you have learned. So I'm happy to have you share ideas, but if you want your own points you have to internalize the ideas and them craft them into an artifact by yourself, without any direct assistance from anyone else, and without relying on any code taken from others (whether at this university or from the web).
  • There are some circumstances under which you may want to collaborate with someone else on the programming component of an assignment. You and a friend, for example, might create independent parts of an assignment, in which case you would each get the points pertaining to your portion, and you'd have the satisfaction of seeing the whole thing work. Or you might get totally stuck and copy one subroutine from someone else, in which case you could still get the points for the rest of the assignment (and the satisfaction of seeing the whole thing work). But if you want all the points, you have to write everything yourself.

For purposes of this class, academic dishonesty is defined as:

  • Any attempt to pass off work on a test that didn't come straight out of your own head.
  • Any collaboration on artifacts in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
  • Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (eg. digital cameras), or deliberately providing them with misleading information.

[Note: this policy has been choosen explicitly to be consistent with the course offered at St. George campus, taught by Kyros Kutulakos]


Syllabus is available in PDF form here.