CS 432/537 - Interactive Computer Graphics

Winter 2016

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. Graduate students will also be expected to read and summarize a research paper and implement a small, student-defined programming project.

Topics covered by the programming assignments include

Undergraduate Prerequisites - CS 260 and (MATH 200 or MATH 201 or MATH 261 or ENGR 231)

Location - Science Center (3401 Market St.) 326

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




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.

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.

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. 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.

The Makefile must contain three targets:

  1. the default target compiles all the code
  2. "run" executes the program(s)
  3. "clean" deletes all the object files and executable files.
The programming assignments must be submitted on the class Bb Learn site.

In order to facilitate grading, homework assignments will be programmed within a VM; thus providing a consistent programming environment.

Info from iCommons
The prepared VM image may be obtained at: www.cs.drexel.edu/opengl/opengl.zip.

We have elected to use a VMware image because the drivers are more mature than virtualbox. The same image works on Windows, Mac, and Linux (as our testing has shown). Students may obtain a free version of VMware from dreamspark. Please make sure they obtain the latest version of VMware workstation 12 (not 11) for Windows and Linux or VMware fusion 8 (not 7) for mac. The readme should explain the set-up process.

It is not recommended that students save anything to the image and instead use VMware shared folders (or say a git repo) as we may have to update the image to reflect missing OpenGL features that we had not enabled.

Students also do not have root on the image, this is so that it can ensure that they do not accidentally deviate from the base image and cause their code to be unrunnable with the base image. This can be reenabled should students feel that they need more tools or we can do package installs for user who need additional packages to do work.

Research Paper Summary

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


Week 1 - 1/6/16

Week 2 - 1/13/16

Week 3 - 1/20/16

Week 4 - 1/27/16

Week 5 - 2/3/16

Week 6 - 2/10/16

Week 7 - 2/17/16

Week 8 - 2/24/16

Week 9 - 3/2/16

Week 10 - 3/9/16

Last modified March 22, 2016.