CSc 433/533: Computer Graphics (Fall, 2007)
[ Syllabus ]


Course page

Instructor:
Kobus Barnard, Gould-Simpson 927
Email: kobus @ cs.arizona.edu    (remove blanks around the @)

Office Hours by electronic sign up.
        Tuesday, 1:00-1:30, 5:00-5:30
        Thursday, 1:00-1:30, 5:00-5:30
        Friday, 4:00-4:30

Office hour slots not claimed 24 hours advance face cancellation.

Teaching Assistant
Leonard Brown (GS 710)
Office hours: MW 12:30-1:30 (also by appointment)
Email: ldbrown @ cs.arizona.edu     (remove blanks around the @)

Graphics Machines in GS 930:
Students are welcome to make use of the graphics lab in GS 930. There are currently 8 workstations which are largely available for this course this semester. The host names are (gr01-gr08).cs.arizona.edu.

Prerequisites:
C SC 345 , C SC 352 , Math 215

Recommended text:
The text book is recommended by not required. The course content will be on-line. Many students will find it helpful to refer to a text, and the choice listed below is comprehensive yet friendly. However, it is possible to get through this course without buying a book.

Other books that my be useful (I have copies of some of these that I can lend for short periods of time):

Overview:
Computer graphics is the art and science of creating digital images from abstract computer encoded models. We will consider both the reduction of models to images (rendering) and model creation (modeling). We will also touch upon issues for both these aspects when sequences of images are to be created (animation).

This course will focus on fundamentals. We will make extensive use of basic linear algebra and geometry. A sound understanding of using matrices to represent transformations will be very helpful. You should be comfortable thinking about problems such as: Given a point, is it in the plane of a polygon? If so, and if the polygon is convex, is the point inside the polygon? I will go over the requisite math as it arises, but if you are not confident with your background, you may wish to contact the instructor to discuss it.

This course will have a heavy programming component. Assignments must be written in either C or C++ and must compile and run on linux.

This course will have both graduate and undergraduate students (including honors students). Graduate students will have additional requirements for assignments and on exams. It is possible for grad students to negotiate exchanging research oriented project work for assignments. .

Topics:
This is an outline of the material to be covered. The topics and their depth will be adjusted as needed. In parenthesis I have put an estimate of the number of lectures that will be used for that general topic area. There are 29 lectures in this term. I have left the equivalent of 3 lectures for quizzes and review/assignment issues, 1 for a non-testable bonus lecture, and 2 for important topics I have forgotten and/or schedule slippage.

If you want to see more details about what the course is like, you may wish to look at the slides from last year . We will likely cover the topics in a slightly different order this term, and there will be some modifications, but there will be perhaps 90% overlap with the material covered last term.

Grading:
    Assignments: 70%
    Quizzes: 10% (best 2 out of 3)
    Final: 20%

A cumulative percentage of 90% guarantees an A, 80% guarantees a B, 70% a C, and 60% a D. The instructor reserves the right to lower these bars a bit to compensate for unintentionally difficult exams and similar problems (possibly differently for 433 and 533).

Assignments:
There will 6-8 assignments with a substantive focus on programming.

Assignments will be handed in electronically, and thus will be time stamped. Material to be submitted will include source code, a makefile, an executable, and likely other files as explained in the instructions for each given assignment.

The programming assignments are designed to both provide experience in writing interactive graphics software, and to help students learn specific theoretical material.

The programs must build and on Linux. The installations available on the CS graphics machines (gr01-gr08) will be used as reference systems for submitted material. If programs are developed elsewhere, or on other OS's, they should be checked on these machines before being handed in.

Exams:
There will be three quizzes, and one final. The best 2 quiz grades of 3 will be used for the quiz part of the grade. The quizzes and exams will include material covered in class that is not part of the programming assignments, and may only be covered tersely in the notes.

Policies:
Good attendance is expected and strongly advised.

Exams must be attended at their appointed time unless you have permission in advance to do otherwise. Since one quiz will be discounted, make up quizzes will not be given except under extraordinary circumstances.

Assignment late policy: Late assignments will be accepted with penalty until five days late. From that point onwards, assignments will not be accepted. This is a matter of courtesy to your TA. The late penalty is 10% per day.

Some attempt will be made to detect violations of the University of Arizona's academic integrity policy. Specifically, exams and written assignment must be the sole work of the student. Students may help each other with the problem analysis and general strategies relevant to the programing assignments, but detailed help or code sharing is not permitted. All code in programming assignments will be assumed to have been written by the student (or student team) unless attribution is given. An obvious exception to this rule is sample code which has been provided by the instructor for this course through the course web page tree. Such code does not require attribution (we know where it came from). It is also permissible to include with attribution code from external sources provided that the code is published, has not been solicited, and was not written for course requirement for this or a similar course given elsewhere.