CMPT 370 (DS) Fall 2009 Homepage


Dr. Sean Ho
(604) 513-2121 x3209, Neufeld 5
Office hours: MW 4-5pm, T 12-1pm, R 1-3pm
Directed Study



General course information: objectives, prerequisites, text, policies, etc.

IDE Policy

Policy on use of alternate integrated development environments and programming languages in this course.

Lab Write-up

Template/example write-up for the programming projects/labs.


Schedule of lecture topics and assignments (subject to revision as the semester proceeds).

Lecture Notes

Slides from the lectures, in Adobe Portable Document Format (PDF).

Example Code


Sample programs using FLTK


Sample parallel programs


Sample 3D graphics progams


Sample code from the OpenGL Programming Guide


Sample programs using GLSL shaders


Midterm 1

Our first midterm, covering graphical user interfaces in FLTK and parallel programming with OpenMP. Answers are included. Also available: last year's practice test and last year's exam.

Midterm 2

Second midterm, covering OpenGL graphics, the rendering pipeline, 3D geometry and transforms, shading, texture maps, and blending.
Last year's practice test and last year's exam.


Documentation for FLTK, a lightweight toolkit for graphical user interfaces.
We will be using version 1.1.9 on Cygwin, with GCC.

Erco's FLTK

Greg Ercolano's FLTK Cheat Page has lots of example code.

The homepage of OpenMP, a standard API for shared-memory parallel scientific computation.
We will be using the version built-in to GCC-4.1.0 on carmel.

The homepage of OpenGL, an industry-standard API for 3D graphics.
We will be using OpenGL under FLTK on Cygwin.

MIT's OpenCourseWare

MIT has generously released the curriculum and course material for their advanced undergrad/grad graphics course, 6.837, under their OpenCourseWare initiative. This is a locally-cached copy.

Red Book

The OpenGL Programming Guide (RedBook)

Spr 2009

I taught the same course last semester; you may find the old exams and course material from that offering helpful.

Daily Devotionals

Every class starts with a short devotional from the Bible, to help keep everything in perspective!