UW Graphics Group

CS 559: Computer Graphics
Fall 2001

CS 559 Home
Calendar Resources Assignments Projects 1 2 3  

Class Announcements

12/19/01 - The key to the final exam has been posted. Have a happy holiday.

12/11/01 - A guide to the exam has been posted!

11/26/01 - A key to Quiz 2 has been posted!

11/20/01 - A reasonably finalized Project 3 has been posted. Updated copies of the sample code has been posted.

11/20/01 - A Homework 3 answer key has been posted.

11/15/01 - The Project 3 sneak preview has been released!

11/1/01 - Homework 3 is assigned! It is due 11/8/01 at the beginning of class.

10/29/01 - The grading for Project 1 has been explained. Individual results will be sent by email soon.

10/23/01 - Project 2 has been released! Also, you can try to read my hand-written (and scanned) lecture notes online.

10/21/01 - The calendar is updated. Not only are the lectures re-arranged, by the project 2 deadline is postponed by a week.

10/21/01 - Programming Assignments 3 and 4 do not need to be turned in. If you do Project 2, it does everything that programs 3 and 4 were supposed to do, so it will be sufficient.

10/14/01 - Programming Assignments 3 and 4 have been postponed!

10/14/01 - Pictures from Project 1 are on display in galleries. One for "art pictures", and the other for "me in a place I've never been" pictures.

10/8/01 - The answer key for the quiz is on-line.

9/17/01 - Homework 2 and Project 1 are posted, calendar and readings updated.

Basic Info


Michael Gleicher
Office: 6385 CS&S
Office Hours: Tuesdays, 1:15-3:15

Xin Li
Office 1345 CS&S
Office Hours: Mondays, 1-3
Mailing List
Archived at: http://www.cs.wisc.edu/lists/classes/cs559-1list/
Class Meetings
Tuesdays and Thursdays, 9:30-10:45
2534 Engineering Hall (not van Hise as in the printed timetable)
The door is in the front of the room, so coming in late is a bad idea.

There are 3 required reading sources:

  • A reader available at the DOIT tech store.
  • The OpenGL Programmer's Guide (red book) - which you can buy in any book store. You can find it on the web for about $50.
  • Peter Shirley's Computer Graphics, which is not yet published. We will give all students in class a copy of the preliminary version of the book.

For some explanation of why there isn't 1 textbook, see my 2 year old rant. The situation hasn't improved that much. (but Shirley's book is a big step forward!). A description of the readings was written to justify it to the Dean.


There will be 2 in-class quizzes on October 9th and November 13th. They will be the last 30 minutes of the class period.

There will be a 2 hour, cumulative final in the exam period for this class (December 19th, 2:45pm).

Make up exams are not possible

There will be 3 programming projects. Each due on a Thursday at 5pm. Late projects will be accepted (for a penalty) until the following Sunday night.
Projects will include individual demonstration sessions.
There will be 4 small programming assignments, each meant to familiarize you with the tools you need for the projects. The programs are due on Thursdays at 5pm. Late programs will not be accepted.

There will be 4 written homeworks. Each due at the begining of class. Late homeworks will not be accepted.

You will be required to write reviews of the chapters in Shirley's book.

Reading and

You are expected to do all required readings, that is why they are called "required."

You will be required to write reviews of the chapters in Shirley's book. Partially this is to prove that you did the readings. It is also to help Prof. Shirley improve his book.


  • 20% * 3 projects
  • 15% final Exam
  • 5% * 2 in class quizzes
  • 15% for "everything else" (homeworks, programming assignments, chapter reviews). In general, these will be graded on a "check/no check" basis

More discussion on the Policy page.

Software Tools

This class is not about the specific tools. However, you will need to use some tools in order to do the assignments and projects that will help in your understanding of the concepts and ideas. A description of the tools we provide is here.

There are a few requirements:

  • Your programming assignments are required to be written in C++ or C. (see discussion below)
  • You will be required to use the OpenGL graphics toolkit for all 3D (and 2D vector) graphics.
  • Your programs must compile and run on the Windows 2000 computers provided by the CSL. No credit will be given for programs that do not run on these machines. If you work at home, be sure to check and make sure your programs are compatible with these computers!
  • Programs that deal with images must be able to read (and sometime write) the TGA file format. You are welcome to write your own reader/writer, but we will provide one for you (and we recommend that you use it).
  • You must build programs that will put up windows, interact with the user, ... We strongly recommend that you use the FlTk UI toolkit, and will support this. However, use of FlTk is optional. You can use something else (MFC, native Win32, ...), but we cannot help you with it. FlTk is a really nice system for getting UI stuff done painlessly.
For more info
You might look at previous years courses

Should you be here?

This is a class in computer graphics. Our goal is to teach you about the science of making and manipulating images with computers. This course is not about how to use computer graphics. Put simply, our goal is to teach you to write and understand Photoshop, not to use it.

The official prerequisites are CS367 (Data Structures) and Math 320 or 340 (Linear Algebra). Basically, in this class you will need enough programming skills to build fairly large programs, and enough mathematical skills to deal with the nature of the topic.

We will require students to write their programming assignments in C or C++. The programming language used for projects really is independent of graphics, however, these are what is most convenient. To put this another way, the language of the class would be English - it could be taught in Japanese, French, or Swahili, but it is more convenient for us to teach in English.

If you've never written a program in C++, you might want to invest a little energy in becoming proficient in the language before the class begins. I have some hints.

Also, the programming projects for this class are much bigger than those in an introductory class. For many students, this is the first time they have to write a substantial program, and that can be hard - this class is about graphics, not how to write substantial programs. Because people ask, I will tell you that last year's projects required about 1500-2500 lines of code to do well (and many students wrote several times that!). Your mileage will vary (and this year we may have different projects than last). If you want some hints on how to build a big program, check here.

You should be warned from the outset that this is a hard class. Like many of the upper level computer science courses, it requires a lot of programming (3 large projects and some smaller assignments). It also requires you to have a fair bit of mathematical skill.

Don't say I didn't warn you.


UW Graphics Group

CS559 Web

Home Resources Assignments Tools  
Calendar Policies Projects 1 2 3   Examples
Copyright (C) 2001 by Michael Gleicher
Last modified: 19:35 Dec 19, 2001