CS 371
Computer Graphics
Spring 2005


Instructor: Bill Lenhart
Office: 309 TCL (ext. 2371)
Hours: See my home page .

Texts

Description

Computer graphics deals with the creation and manipulation of visual images from computer-based models. It is a very broad area which employs techniques from many diverse disciplines including data structure and algorithm design, software engineering, mathematics and physics. The goal of the course is to provide a solid foundation in the fundamental concepts and techniques of computer graphics. The course will include overviews of a wide variety of topics, along with detailed discussion of the most important aspects of 2D and 3D rendering. Over the course of the semester, students will enhance and test their understanding of the material by working on a variety of two- and three-dimensional rendering projects. In particular, students will be introduced to the OpenGL graphics library, both as a tool for graphics programming and as motivation for learning concepts necessary for the implementation of a 3-D graphics system.

Evaluation

A large part of your grade will be based upon the quality of the four programming projects that you complete over the course of the semester. There will also be a mid-term exam, a final exam, and a number of shorter assignments given periodically throughout the semester ("homework assignments"). The homework assignments will typically consist of problems to be worked out by hand or small programs. The projects will count for approximately 60% of your final grade, the exams approximately 30%, and the homwork appproximately 10%. Note: Although no individual piece of work counts for more that 15-20% of the final grade, no assignment is "optional". Failure to turn in a project (or to take an exam) will result in a final grade penalty beyond merely receiving a grade of zero for the assignment.

The mid-term exam will be on Wednesday, April 6 and will occur in-class. The final exam will be a "scheduled" exam.

Students who do a thorough job of completing the minimum requirements for a given programming assignment will receive an average (B/B+ range) grade for that assignment. If you want to get more out of an assignment (or if you just want to get a higher grade on it), you should plan to go beyond the minimal requirements. I am happy to make suggestions or respond to your ideas for extensions and enhancements to assignments.

Honor Code

Each programming assignment constitutes most closely what the departmental honor code guidelines refer to as a "laboratory" assignment. The difference: You may help another student in debugging his or her code, and you may explain concepts from the course, but you may not help in designing or writing the code for any part of another student's programs (or receive such help from others).

There are many useful resources on the web for expanding your graphics knowledge; the course web pages provide links to some of them. However, use of code obtained from the web (or any other source!) either directly (copying code) or indirectly (examining for clues code that implements assignments similar to yours) will be considered a violation of the honor code.

As for exams, the mid-term and final exams will be "closed-book". For other assignments, discussion is allowed, copying is not.


lenhart@cs.williams.edu