CS 537 - Interactive Computer Graphics

Winter 2017

Description: This is a projects-oriented class that will introduce the concepts of interactive computer graphics. Students will learn the details of the OpenGL (OGL) graphics system by implementing weekly programming assignments. Students will also be expected to read and summarize a research paper.

Topics covered by the programming assignments include

Location - Rush 009

Time - Wednesday, 6:00 PM → 8:50 PM


See the CLC schedule for TAs who can help you with the assignments during their CLC hours.


Resources from Prof. Ed Angel

OpenGL On-line Documentation


I intend to use the standard grading scale of 100 → 90 (A), 89 → 80 (B), 79 → 70 (C), 69 → 60 (D), else (F).
Please also note that incompletes will not be given for this course.

Late Policy


Assignments due Thursdays at 11:59 PM

All programming assignments must use the shader-based functionality of OpenGL.
Therefore you should not use any of the deprecated features of the API, e.g. glBegin, glEnd, glVertex3f, etc.
Any assignment that uses old, deprecated OpenGL will be given a zero.

Each program must print to the console what it does and how to use its interface.
Be sure to include a key for quitting your programs.
2 points will be subtracted from the assignment's grade if this is not included.
Do not print out anything else to the console, except the program instructions.

Additionally Idle functions must only be used in HW3. There is no reason to use these performance-killing functions for purely interactive programs, i.e. those that only update the screen after some kind of user input/interaction. Points will be taken off if you have unnecessarily specified an Idle function in your homework programs.

Points will also be subtracted if you do not follow the submission instructions EXACTLY.

Students must work on the assignments individually. Note: If the TA or instructor finds strong evidence of cheating on assignments, the student(s) involved will receive an "F" in the course, and a memo describing the cheating will be added to their record. Note: Your source code for all programming assignments will be run through a plagiarism detection system checking against assignments turned in this and previous terms. This program uses compiler techniques, which are invariant of syntax and style. If you are sharing/borrowing code with/from other classmates (from this or previous years), you will get caught.

You may NOT make extensive use of the Angel example code (or any other programs found on the Internet) to complete your assignments.

See the CS Department's Academic Integrity Policy for more information.

For all assignments submit a zip file that contains a folder with your initials and assignment number, for example ak876_a1.
All your files (source files, Makefile and a README) should be inside this folder.
Your README file should tell me on which OS your program runs. The options are Linux (tux) and MacOS.

The default target of the Makefile should compile and link all of your code.
I should be able to 'cd' into your directory and type 'make', which will make an executable that I can then run.

The programming assignments must be submitted on the class Bb Learn site.

In order to facilitate grading, all homework programs should run on tux or on MacOS.

Assignment Schedule

Research Paper Summary

Recorded lectures can be viewed via the class Bb Learn page by following the Class Capture link


Week 1 - 1/11/17

Week 2 - 1/18/17

Week 3 - 1/25/17

Week 4 - 2/1/17

Week 5 - 2/8/17

Week 6 - 2/15/17

Week 7 - 2/22/17

Week 8 - 3/1/17

Week 9 - 3/8/17

Week 10 - 3/15/17

Last modified March 19, 2017.