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
- Graphics system architectures and technologies.
- Raster graphics and scan conversion algorithms.
- 2-D transformations.
- 3-D transformations, viewing in 3-D, projections,
coordinate systems, and the 3-D rendering pipeline.
- Object hierarchy.
- Parametric cubic curves and surfaces.
- Color and lighting.
- Blending and antialiasing.
- Texture mapping.
- Shadows and reflections using the stencil buffer.
- Fractal models.
- Recursive ray tracing.