COMP 557 Fundamentals of Computer Graphics

COMP 557 (ECSE 532) Winter 2024 - General Information

Lectures 2:35 pm-3:55 pm, Mondays and Wednesdays
Location MC 13
Credits 4
Instructor Paul Kry
Office MC423
Office Hours See information on MyCourses, or by appointment (any time!)
Teaching Assistants See information on MyCourses for TA contact information and office hours
MyCourses for discussion boards and assignment submission

Overview and Objectives

The study of fundamental mathematical, algorithmic and representational issues in computer graphics. The topics include an overview of graphics pipeline, projective geometry, homogeneous coordinates, projective transformations, quadrics and tensors, line-drawing, surface modeling and object modeling, reflectance models and rendering, texture mapping, polyhedral representations, colour perception, and other selected geometry processing topics according to available time.


Graduate students interested in this course, who have not already taken a graphics course, will likely have taken courses equivalent to the prerequisites listed below. For undergraduate students, there are three official prerequisites for the course:
  • COMP 206 Introduction to Software Systems -- familiarity with c and the unix make utility are not directly required this year, but have been for some assignments in some years. Likewise, debugging and testing of code is an important part of the course.
  • MATH 222 Calculus 3 -- Graphics involves parametric representations, partial derivatives and integrals and some vector calculus. This prerequisite will ensure you are prepared, and it or its equivalent is required for all CS Majors.
  • MATH 223 Linear Algebra -- This course will build upon your basic understanding of vectors and matrices. You should have at least a B grade in your linear algebra course, or be prepared for a serious review.
  • COMP 250 Introduction to Computer Science -- This prerequisite is to ensure that students have a sufficiently high level of computer science and mathematical maturity.

Course format and evaluation

The class will be taught through a series of lectures. Grading will be based on assignments, a midterm, and a final exam. The intent is for students to get hands on experience with the material in the course. There are three components to the grading scheme.

  • 50% assignments (4 assignments)
  • 20% midterm exam
  • 30% final exam

There will be a makeup midterm for anyone who misses the midterm for a suitable reason.


Assignments must be all your own work. You are still encouraged to discuss material related to the assignments with your classmates, that is, discuss your assignments, problems, or solutions as a group, but you are ultimately responsible for understanding the material and the programming and write up must be all your own work. If you do talk with your classmates about the assignment, then you must list the names of everyone with which you discussed the assignment, or state that you discussed with nobody.

You must not share your solutions publicly with version control websites such as github or bitbucket. If you are sharing course work with potential employers, do this with a private repository.

All work must be submitted through MyCourses. There are generous accommodations for cases where students have time management problems, but the late deadline must be considered as a HARD deadline.

See below the section on things you should already know about academic integrity. Also note that you can submit work in French if you prefer. If ever you feel you can't complete the work, talk to me, or your advisor, and we can help you figure out what to do (i.e., do not wait until just before the assignment deadline, or the end of the term).

Programming assignments MUST be submitted electronically (follow the instructions in the assignment specification). If there is any directory structure in the provided starter code, it must be preserved in your zip file. Do not use any other archive type. Please check carefully the time at which assignments are due and do not leave it until the last minute to submit!

Late assignments will be accepted up to three days after the deadline and will receive a penalty of 10%. Late penalties can be waived once via a request in the readme file submitted with the assignment.

You should always check your submission by downloading your assignment from the server and checking that it is what you intended to submit. The written component of an assignment, if any, must be submitted as a PDF (i.e., a clear scan, or photo, or use latex or some other typesetting software). Please make sure that readme files always have either a .txt or .md ending. You will not receive marks for missing or corrupt files or work that is incorrectly submitted.


There is no required text for the course, but the following course textbooks is strongly recommended and is available online in the McGill library.
  • Fundamentals of Computer Graphics , 3rd or 4th Edition, Shirley and Marschner
Throughout the term I may provide references to material within other texts or seminal research papers on MyCourses.

In case you didn't already know...

McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures. See for more information, as well as with respect to student rights and responsibilities. From the dean of students, on academic integrity: As instructors, if you suspect a student has plagiarized or cheated on a test or assignment, remember that you cannot penalize them yourself. This must be handled through the Code of Student Conduct and Disciplinary Procedures. The Disciplinary Officer for your Faculty can help guide you through the process.

It should be noted that, in accordance with article 15 of the Charter of Students'Rights, students may submit examination answers in either French or English.

According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section, General University Information and Regulations at Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.

Please note McGill's Policy for the Accommodation of Religious Holy Days.

In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.

Additional policies governing academic issues which affect students can be found on the Student Rights and Responsibilities page.