Syllabus

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)

email: rsc@csustan.edu, cunningham@siggraph.org

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):

__http://www.cs.csustan.edu/~rsc/CS3600F98/3600SylF98.html__

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.

Grading:

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

Schedule:

Midterm exam: Tuesday, October 27 in class.

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