CS 324: Computer Graphics

Professor: Clinton Jeffery
Office: JEB B26
Office Hours: MF 1:30-2:30 and by appointment*
Phone: 208-885-4789
E-mail:jeffery@cs.uidaho.edu
Class Meets: MWF 9:30-10:20 in ALB 112
Web: http://www2.cs.uidaho.edu/~jeffery/courses/324/
Prerequisites: (CS 213 or 121) AND Math 330
Text: Computer Graphics Using OpenGL 3rd ed., F.S. Hill, Prentice Hall, 2007.
Supplement: Graphics Programming in Icon, by Griswold, Jeffery, and Townsend (distributed in class)

Course Description and Goals

This course introduces students to the basic principles and problems of computer graphics. We will look at topics in 2D and 3D graphics, focusing mainly on output. Students will learn and practice the application of linear algebra to this field.

Our goals for this course are as follows:

  1. Present the mathematical foundations of graphics
  2. Understand the main ideas and algorithms of computer graphics
  3. Gain substantial, fun programming experience
  4. Introduce a sophisticated, modern 3D graphics API

Homework Platform

Assignments will be written in C or Unicon and graded on Linux. Strong emphasis will be placed on multi-platform portability. Development on Windows or Macs will be accommodated as long as the result runs well on CS lab Linux machines. You should include time for porting to Linux in your project schedule.

Attendance and Grading

Attendance is required. The grading will be proportioned as follows: 50% for quizzes/homeworks, 15% for the midterm exam, 15% for the final exam, and 20% for a term project




Quizzes, Exams, and Homeworks

We will have quizzes, exams, and homeworks. Quizzes will test your reading comprehension; exams will test your mastery of concepts; homeworks will allow you to demonstrate that you can put ideas into practice. 2D homework assignments will use a very high level graphics language called Icon. 3D homework assignments will use OpenGL.

Tentative Schedule

The course can be divided into four parts. I will try to give additional breakdown of forthcoming topics as the course progresses.
Introduction (2 weeks)
History of graphics; graphics hardware; graphic design
2D Graphics (5-6 weeks)
Line, arc, and curve drawing; viewports and coordinate systems; colors; fonts; transformations
3D Graphics (5-6 weeks)
Rendering pipeline; scene graphs; OpenGL; textures; lighting; effects
Advanced Topics (1-3 weeks)
Program visualization; other topics tba

Course Updates

Expect substantial on-line course content to be added, as we go. Check the course web page for updates at least once a week.

Policy Statements

Cheating is strictly forbidden on exams, with severe penalties. For most assignments you will be allowed to work alone, or complete a larger assignment working in a team.