In this course, students will learn the basic mathematical tools and computational techniques for modeling and displaying three-dimensional geometric objects. Students are expected to have a background in basic data structures, programming in C++, analytic geometry, vector calculus, and linear algebra. More specifically, the prerequisites for this course are:
CS 225 or CS 400
Math 225 or Math 415 (linear algebra)
Math 242 or Math 243 (vector calculus)
An existing knowledge of OpenGL is helpful, but not required.
The required text for this course is
Interactive Computer Graphics: A Top-Down Approach using OpenGL,
Edward Angel.
Fourth Edition. Addison-Wesley. [Amazon]
The programming projects assigned in this course will make substantial use of the OpenGL graphics API. We also strongly recommend that you obtain a copy of the following book:
OpenGL Programming Guide, OpenGL ARB, Woo et al.
Fourth Edition. Addison-Wesley. [Amazon]
It contains a great deal of useful information on writing OpenGL programs and on computer graphics in general.
Final grades in this course will be based on performance on (1) written homeworks, (2) programming projects, and (3) exams. Grades in these individual areas will be weighted as follows:
Projects 50% Homeworks 10% Midterm Exam 15% Final Exam 25%
Final letter grades will not be computed “on the curve”. Instead, they will be determined on a fixed scale. You are not competing with other students for grades; you are trying to master the course material. In principle, everyone in this class could fail, and similarly, everyone could earn an A.
We will total grades as indicated by the weighting scheme above. Each student will have earned some percentage of the total possible points. This percentage will determine a minimum guaranteed grade, as indicated in the following table:
% Total Minimum Grade 90-100 A 80-89 B 70-79 C 58-69 D
This table indicates minimum guaranteed grades. Under certain limited circumstances (e.g., an unreasonably hard exam), we may select more generous ranges.
This course contains both undergraduate and graduate students. We expect to grade both undergrads and grads on the same scale, as past experience shows that both groups perform at roughly equal levels. However, if a significant performance disparity develops, we may choose to grade the two groups separately.
This course will be using CSIL workstations located in Multimedia, Graphics, and HCI Lab. These machines are located in 0216 Siebel and are running Fedora Linux.
There will be three programming projects assigned in this course. As stated above, they will account for 50% of your final grade. The relative weighting of the individual projects will be as follows:
MP1 30% MP2 30% MP3 40%
We expect there to be 3-4 written homeworks assigned during this course, which will cumulatively account for 10% of your final grade. Unless noted otherwise, they will all count equally.
After a project or homework is assigned, important clarifications may be made to the directions on the initial assignment. These clarifications will be posted on the class newsgroup. It is your responsibility to monitor this newsgroup in case any important announcements are made.
We expect the work you submit in this course to be your own. Submitting the work of others as your own is dishonest and is a violation of the University honor code on academic integrity. It is similarly unexceptable to provide your work to other students.
Dishonest behavior of this sort is unacceptable. The consequences for any such actions will be a failing grade for the course. Any cases of cheating will be reported to the department and the college. The departmental site describes the procedural details.