Computer Science 155
Computer Graphics
Syllabus, Spring 1998

Professor: Ran (``RON'') Libeskind-Hadas
Office: Olin 245
Phone: x18976
E-mail: hadas@cs.hmc.edu
Office Hours: Monday 1-3 PM, Tuesday 3-5 PM, Wednesday 3-5 PM, Thursday 1-3 PM
Course Homepage: http://www.cs.hmc.edu/~hadas/courses/cs155/index.html

Course Assistants: Ben Elgin (belgin@cs.hmc.edu) and Michael Balloni (mballoni@cs.hmc.edu)

What Is This Course About?

This course covers the foundations of 2- and 3- dimensional computer graphics. In the first part of the course we will develop the theory and implement a simple 3-dimensional graphics system (a subset of OpenGL) from scratch. In the remainder of the course we will use the OpenGL graphics library to implement complex 3-dimensional scenes employing smooth curves and surfaces, color, lighting, atmospheric effects, textures, reflections, shadows, etc. The last three weeks of the course will be spent using these new tools in an independent or group project.

Is This Course for You?

OF COURSE! Alright, seriously, the prerequisites for this course are CS 60, Math 73 (linear algebra), and CS 140 (algorithms). There will be a considerable amount of programming in this course using your choice of C or C++. Most of the programs will involve linear transformations and elementary concepts from linear algebra (matrix multiplication and inversion, inner products, and cross products).

Texts

The textbooks for this class are:

Computer Graphics: Principles and Practice by Foley, Van Dam, Feiner, and Hughes, 1990 Addison-Wesley, 1994.

The OpenGL Programming Guide by Woo, Neider, and Davis, Addison-Wesley, 1997.

Assignments and Grades

From January to the beginning of April, there will be weekly programming assignments. The last three weeks of the semester will be used to complete an individual or group project. The breakdown of points is as follows:
 
	Programming and Homework assignments: 70%
	Project: 20%
	Class Participation: 10%
"Class Participation" simply means being present and attentive in class. You are welcome and encouraged to participate actively (ask questions, make comments, heckle the professor), but it is not required to receive full credit for class participation.

Important Homework Policies

Homeworks, which will be primarily programming assignments, will be assigned weekly. With the exception of Homework 0, each programming assignment will be worth 100 points.

There will be three deadlines associated with each homework assignment. If your homework is submitted by the Early Deadline of Saturday before midnight you will receive 10 extra points. If your homework is submitted after the Early Deadline but by the Regular Deadline of Sunday before midnight, you will receive regular points. If your homework is submitted after the Regular Deadline but before the Late Deadline of Monday before midnight, 10 points will automatically be deducted from the score. Homework received after the late deadline will not be graded.

Collaboration Policy

You are welcome and encouraged to discuss an approach to a problem and you may, of course, help one another to debug code. Copying or sharing code with anyone is stricly forbidden and you are expected to adhere to all aspects of the Harvey Mudd Honor Code.

Topics