CS 488/688: Introduction to Computer Graphics
Fall 2016
Course Outline

Course logistics for Fall 2016

Tuesdays and Thursdays, 11:30–12:50, DWE 3518
MC 3007 (There are no scheduled lab times. The lab is available 24 hours a day for students enrolled in CS 488/688. The code to open the lab will be provided in class.)
Craig S. Kaplan (see also)
DC 2110
Office hours: Mondays, 3:00–4:00 (or by appointment)
Teaching Assistants
Jumyung "JC" Chang
Office hours: Mondays, 10:00–11:00 in DC 3594

Xiang Fang
Office hours: Wednesdays, 2:00–3:00 in MC 3007

Boris Kravchenko
Office hours: Fridays, 2:00–3:00 in MC 3007

About CS 488

CS 488 is an introductory computer graphics course. It focuses on 3D graphics, although it does discuss some aspects of user interface design. CS 488 has a fairly heavy project component and should not be taken in conjunction with other heavy project courses.

Calendar description: Software and hardware for interactive computer graphics. Implementation of device drivers, 3-D transformations, clipping, perspective, and input routines. Data structures, hidden surface removal, colour shading techniques, and some additional topics will be covered.

Course objectives: At the end of the course, students should be able to

  • Carry out mathematical constructions on points, vectors, and transformations in affine spaces
  • Explain the algorithmic and mathematical concepts used at each stage of a modern graphics pipeline
  • Write interactive programs that display and manipulate 2D and 3D geometry
  • Write a ray tracer

Overview of topics: In a typical term, students should expect to cover the following topics.

  • Graphics environment (4 hours)
    • Overview of a representative processing sequence that connects application programs with images they display on screen
    • Outline of the graphics library students will use and the graphics workstation hardware
  • Mathematical underpinnings (4 hours)
    • Review of concepts and tools: points, vectors, lines, planes, matrices, dot and cross products, vector space, affine space, projective space, etc.
  • Transformations (4 hours)
    • 2- and 3-dimensional translation, rotation, and scaling as matrix operations
    • Homogeneous coordinates
    • Clipping, windowing, and viewing with perspective
  • Hidden surfaces and shading (4 hours)
    • Standard lighting models and their implementation
    • Hidden-surface elimination using depth buffering, scanline coherence, and subdivision
    • Polygon filling
  • Ray tracing (4 hours)
    • Basic ray tracing techniques for generating shadows, mirror reflections, and refraction
    • Constructive solid geometry models
  • Physically based rendering (4 hours)
    • Radiosity, bi-directional path tracing, global illumination
  • Discretionary topics (5 hours)
    • Topics are chosen at the discretion of the instructor. Possible topics include more depth on any of the previous topics, human vision, colour theory, anti-aliasing, database amplification, animation, scientific visualization, graphics hardware support, higher-order curves and surfaces, and dynamic simulation.

Texts and readings

The main readings for the course can be found in our own CS 488 lecture notes, which can be downloaded from the course web page or purchased on campus. In addition, we recommend several textbooks. The first two are comprehensive introductions to computer graphics as an area of study.

The following book is also invaluable as a reference for OpenGL programming.

The Davis Centre library has these and other useful books for loan at the reserve desk.

Student work and evaluation

A student's final grade will be formed from the following components:


There are four main assignments (A1, A2, A3, A4), collectively worth 32% of the final grade. In addition, students may choose to complete an optional warm-up assignment (A0) that does not contribute to their final grade, but that will orient them with the logistics of completing and submitting future assignments. The Fall 2016 due dates for these assignments are as follows:

  • A0: Wednesday, September 14th at 11:59pm
  • A1: Wednesday, September 21st at 11:59pm
  • A2: Wednesday, October 5th at 11:59pm
  • A3: Wednesday, October 19th at 11:59pm
  • A4: Wednesday, November 2nd at 11:59pm

There is a final project (A5), in which students complete a major graphics programming task on a topic of their choice. The project is worth 24% of a student's final grade: 4% for an initial proposal, and 20% for the execution and demonstration of the project. The Fall 2016 due dates for the project components are as follows:

  • Initial proposal: Wednesday, November 9th at 11:59pm
  • Revised proposal: Wednesday, November 16th at 11:59pm
  • Final submission: Monday, December 5th at 11:59pm

As part of marking, students will give short project presentations and demonstrations for the professor and TAs. Time slots will be determined towards the end of the term.

A midterm exam will be held in class on Thursday, October 27th, and will be worth 14% of the final grade. A final exam will be scheduled at the end of the term by the Registrar's Office and will be worth 30% of the final grade.
Additional notes
  • Assignment mark, exam mark: Students must receive a passing mark (50%) in both the exams portion of the course (the midterm and final) and the assignments portion of the course (the four assignments and project). A student who receives less than 50% in either category will receive a final grade no higher than 45%. The instructor reserves the right to adjust raw marks downward in response to violations of academic integrity, and upward in other situations.
  • Submission and marking: Assignments will be submitted via LEARN, and marks and comments will be made available there.
  • Late assignents: No credit will be given for late assignments under any circumstances. If a student has a legitimate reason why they were unable to complete an assignment, it may be possible to forgive the weight of that assignment as part of the final grade. Students may still submit their assignments late in order to receive feedback.
  • Group work: No group work is allowed; all work on the assignments and project must be done by each individual student. However, students are allowed to discuss the ideas and concepts that are to be implemented.
  • Privacy: The Freedom of Information and Privacy Protection Act (FIPPA) says that a student's name can not be connected with anything else related to that student without their consent. In the course, students will complete assignments (A3, A4, project) that produce images that we may want to include in the course's online gallery. We assume that students consent to our inclusion of these materials on the course web page with identifying information (name, course term).

    Students who do not want their images or information to appear on the web page should let us know.

Academic integrity

Academic integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check the Office of Academic Integrity for more information.]

Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.

Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. [Check the Office of Academic Integrity for more information.] A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.

Note for students with disabilities: AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.

Turnitin.com and alternatives: Text matching software (Turnitin) will be used to screen assignments in this course. This is being done to verify that use of all material and sources in assignments is documented. In the first week of the term, details will be provided about the arrangements for the use of Turnitin and alternatives in this course.

Note: students must be given a reasonable option if they do not want to have their assignment screened by Turnitin. See Academic Integrity - Guidelines for Instructors for more information.