CMPT 361 - Assignments

"Do not pray for tasks equal to your powers. Pray for power equal to your tasks." - Phillips Brooks

Policies: [ Plagiarism | Lateness ] Cover page: [ MS Word | PDF ] Check your grade: here

*** ABSOLUTELY no late submissions allowed unless under extraordinary circumstances, e.g., illness and a doctor's note is needed. ***
  1. Assignment #0 (not graded): available on Jan. 17
  2. Assignment #1 (15% of course grade): available on Jan. 24; due on Feb. 21. (Solution)
  3. Assignment #2 (15% of course grade): available on Feb. 21; due on Mar. 14. (Solution)
  4. Assignment #3 (15% of course grade): available on Mar. 14; due on Apr. 4. (Solution)

Assignment contents:

An assignment will typically consists of two parts: A written part for short answers/derivations/proofs, etc., and a programming part, which involves coding in C/C++ and the use of OpenGL.


Your paper submission is to be handed in class and programming submissions must be done electronically before the end of the due date, i.e. 23:45:00 is the absolute last timestamp for on-time submissions. Submission at 23:45:01 or after will be regarded as being late. Information on penalties for lateness can be found here.

Programming in Windows:

will not be prohibited :) Although you are encouraged to use Unix or Linux for your assignments since the grader will be marking your program under Linux. You can develop your program under Windows, e.g., using Microsoft Visual C++ or with the aid of MinGW/MSYS (; it is up to you. But it is your responsibility to make sure that your program compiles and runs smoothly under Linux, with the kind of programming environment available at CSIL. The grader shall make clear the particular setting being used. Marks may be lost due to incompatibility problems at the discretion of the grader.

Grading Criteria:

Grading of the programming part will be based on the following:

The grader will grade both parts of the assignments. If you have a problem with the grade you received, please see the grader first. If you can't resolve the dispute with the grader, then come see me. Please note however that in order to maintain a consistent grading for everyone in the class, I am usually not inclined to alter grades that are assigned by the grader.


Don't be behind in the assignments. Always start early. Design and implement in a top-down and modular fashion. Get something working that has the skeleton structure of what you need and then add features to it. Each time you add a feature, test it and make sure everything is still working. It can be tough to debug graphics programs if all you know is that the output is wrong and you're not sure any one module is working.  

Richard (Hao) Zhang / haoz at cs dot sfu dot ca