EECS 487: Interactive Computer Graphics
Course Information

Winter 2007


The course will address the following topics:


Each student's final grade will be based on 2 exams, 5 programming projects, 3 - 4 homework assignments, a "special assignment," and "class contribution," as follows:

Exam 1
Exam 2
Homework 15
5 Projects
Special assignment
Class contribution

The final letter grade is determined from the total number of points, as follows:

Total points
Letter grade
97.5 - 101
92.5 - 97.4
90 - 92.4
87.5 - 89.9
82.5 - 87.4
80 - 82.4
77.5 - 79.9
72.5 - 77.4
70 - 72.4


See the course syllabus for due dates.

Programming projects:

There will be five programming projects, each worth 10 points.

Project 1: Scan converting lines and triangles. Load a 3D model and render it in wireframe, or with filled triangles, where colors are interpolated using barycentric coordinates.

Project 2: Shading. Implement the basic lighting calculations offered by 3D APIs like OpenGL (combining ambient, diffuse, and specular lighting effects). Implement several shaders using GLSL.

Project 3: Sketch modeler. Implement a simple sketch modeler based on interpreting 2D input and instantiating corresponding 3D shape primitives.

Project 4: Animation. Create animations by modeling a scene, animating one or more articulated figures to move through the scene, and animating a camera to render frames of the animation.

Project 5: Ray tracer. Implement a ray tracer, including effects such as soft shadows, reflections, and refraction through transparent surfaces.

Late policy: We will not accept late submissions. This is a firm policy. If you wait too long to start work, you risk getting a 0 on the project. Start early, and plan to have it finished a few days ahead of the due date. 

Early policy: There will be a bonus for early submissions of the programming projects: 4 points (on a hundred point scale) for submitting 2 days early, and 2 points for submitting 1 day early.

Written Homework

There will be 3 or 4 written homework assignments, generally taken from the text book.

Special Assignment:

The "special assignment" will be either a presentation or a written paper. Some students will deliver 10-minute presentations in class using Powerpoint, live demos, web pages, slide shows, or anything else that helps make the desired point.  The topic is up to the student, but should be related to computer graphics. One possibility is to research a technique that isn't already being covered in lecture, and do a presentation about it. Presentations should be fun and informative. Being able to do good presentations is a useful skill in many lines of work, which is one reason for this assignment. Being able to write well is another useful skill, and some students may prefer to report their ideas in written form. A written paper (or web page) is thus the second option for doing the "special assignment." With images, written papers can range up to 5 pages (with images). All papers will be posted on the class web space so that students can read each others' work. In both cases, your intended audience is your fellow students.

Class Contribution:

This refers to contributions made to class, which can take a variety of forms. E.g., speaking up in class, answering students' questions on the phorum, creating datasets (3D models, image sequences, etc.) that others in the class can use, fixing problems in the support code and checking the revised code into the CVS repository shared by the class (with permission)... Or just generally contributing to the well-being of the class. Bringing bagels and cream cheese to class could almost work, if it didn't involve spending money.


CAEN Account
: You are required to have a CAEN account to take EECS 487. Among other reasons, you will need it to access some of the course materials. (Most students will already have one, because Engineering students and LS&A computer science majors all have CAEN accounts.) We are providing 100MB of disk space on CAEN servers for each EECS 487 student to use for course work.

Honor code and policy on cooperation: All students taking this class are expected to abide by the Honor Code of the College of Engineering. This means that all assignments, programming projects, and exams are covered by the Honor Code. In general, all work is to be that of each individual. Students must not share code or designs related directly to the content of a project, but can discuss questions about the assignment, the support code, general coding techniques, and the general principles of graphics algorithms. (The class phorum is a good place to discuss such questions.) Violation of this policy is grounds to initiate an action with the Dean's office that may come before the College of Engineering's Honor Council. Please do not hesitate to contact me if you have any questions about this policy.
Getting Help

A good way to get individualized help is to go to office hours (listed on the main course web page). In addition, you can get help online via the EECS 487 phorum. This is a great way to ask questions and get answers. (You can also answer other students' questions -- and get contribution points for doing it!) Lee and Manoj prefer this to email, because it helps us avoid answering the same questions repeatedly. We ask that you do not post your project-specific code on the phorum. If you have a code-specific question that requires we look at your code, come to office hours.

EECS 487 home               

Last updated: January 6, 2007