Course: CS 3600 -- Computer Graphics I, Fall 1998

Times: 9:40 - 11:07 am Tu/Th, PSB-101

Instructor: Dr. Steve Cunningham
Office: PSB 283; phone: 667-3176 (answering machine)
Office Hours: 11:30-2:00 Tu/Th and by appointment

Text: Angel, Interactive Computer Graphics: A top-down approach with OpenGL, Addison-Wesley, 1974

Other resources:
Course page from Caltech with OpenGL/GLUT links
GLUT reference page at SGI
Introduction to the GLUT system (1994 paper) [pdf file]
Specifications for GLUT (the manual) [pdf file]
An example using GLUT [pdf file]
The SIGGRAPH 98 course, Advanced Programming in OpenGL

Course Description:

This is a general introductory course in computer graphics, emphasizing three-dimensional geometry and ways of representing and displaying this geometry on the computer using the OpenGL API that is very important in today’s graphics world.

The course will include programming projects in three dimensional graphics. These will vary from simple to relatively complex, and all will illustrate fundamental graphics concepts or principles. These are intended as single-student projects, but small (> 3 students) groups can work on projects with the understanding that extra features will be required of groups for a given letter grade. I will discuss such group work and the extra features outside class with persons who might be interested, and each group project must have written approval and project plan in advance.

This semester we will have formal laboratories in the course. These will give you experience in working with the graphics library, and your feedback will be important in shaping them into successful teaching tools. As these laboratories are developed, links will be activated on the CS3600 syllabus page (which will, of course, include this handout):

so you can access them. The laboratories are not graded, but should help you learn more about the graphics systems and how to use them.

The course is based on the OpenGL graphics standard, which is supported on all the systems in the PSB computer science laboratory. OpenGL is a de facto international graphics standard and will be valuable to anyone who anticipates any kind of graphics programming. More details on the equipment and software will be given in class. This environment is new to Stanislaus and to your instructor, so we will all participate in getting it working fully.


Your grade for this course will be based completely on the following three factors:

Programs: 40%

Midterm: 20%

Final: 40%

The examinations will be technically-focused and may include geometry, graphics theory, aspects of OpenGL, and graphics programming. As always in my classes, no makeup exams will be given and late projects will be accepted with a penalty of 10% per calendar day up to a total reduction of 50%. The letter grade will be based on the resulting score, but I cannot tell you your current letter grade during the course. I also do not give plus or minus grades.

Projects in this course must be entirely the work of the individual student or group; programs showing significant duplication will get no credit for anyone involved, and neither will any project done by anyone other than the person(s) handing it in. Gross plagiarism may result in a summary failing grade and removal of the student(s) from the course. Projects will be graded using the usual standards of correctness (both graphics and programming), testing, and documentation, and about 10% of the basic grade will be based on the visual quality of the work. Since this is an upper-division Computer Science course, you must remember that no course graded CR may be presented as a Computer Science elective. I discourage CR/NC grading, but will agree to it if you understand the consequences. And, of course, such a grade cannot be arranged after the course final exam.

Project list:

Project 1: displaying the largest value
Project 2: surface modeling of a simple surface
Project 3: a fractal landscape
Project 4: the N-body problem
Project 5: spline surface

Code sample list:

Source for animated 3D gasket
Source for illuminated rotating cube
Source for cube that rotates about its own axes
Source for cube that rotates around world axes
Source for a mathematical surface
Source for an animation of a one-parameter family of functions, with three lights
Source for a rotating cube with a clipping plane
Source for a rotating cube with alpha blending
Source for cube with texture map and fog
Source for small Bezier spline curve
Source for selection example


Midterm exam: Tuesday, October 27 in class.

Final exam: 9:00 - 11:00 am Thursday, December 17, as in the class schedule