Computer Science 465

Principles of Computer Graphics

Spring 2006

Prerequisite: Computer Science 331.

Examination and analysis of computer graphics; software structures, display processor organization, graphical input/output devices, display files. Algorithmic techniques for clipping, windowing, character generation and viewpoint transformation.


Kenytt D. Avery, M.S.
Office: CS-542
Office Hours: Friday 8:45-10:00pm
Phone: (714) 278-3453


Be careful to use only the e-mail address shown above for correspondence. There are other e-mail addresses that will reach me, but I can't guarantee to respond quickly if you use any of them.

For homework, please use the "Submit an Assignment" link on the left side of the home page.

Hours and Location

Section 1 meets Friday, 6:00-8:45pm.

On exam days, we will meet from 6:00-8:45 in CS-110B

On other days, we will meet from 6:00-7:30pm in CS-110B and from 7:30-8:45pm in CS-300.


Required: Foley, J.D., van Dam, A., Feiner, S. K., Hughes, J. F., and Phillips, R. L., Introduction to Computer Graphics, Addison-Wesley, 1993. ISBN 0-20-160921-5
Required: OpenGL Architecture Review Board, OpenGL Programming Guide, Fourth Edition, Addison-Wesley, 2004. ISBN 0-32-117348-1

The citation above is for the Fourth Edition, but any edition of the OpenGL Programming Guide is acceptable, and you need not buy a hard copy. Electronic copies of the First Edition are available from

Recommended: Hearn, D. and Baker, M. P.,Computer Graphics with OpenGL, Third Edition, Prentice Hall, 2003. ISBN 0-130-15390-7
Recommended: Angel, E. A., Interactive Computer Graphics: A Top-Down Approach using OpenGL, Fourth Edition, Addison-Wesley, 2005. ISBN 0-321-32137-5

Required Reading

You will need to read the sections of the OpenGL Programming Guide and one of the textbooks listed above, as indicated by the Course Outline.

In addition, I will occasionally post links to recommended papers, articles or other resources. For details, see Changes and Other Announcements below.

Grading Policy

Your course grade will be calculated as follows:

Programming Assignments 60%
Midterm Exam 20%
Final Exam 20%

Grades will be assigned on the usual 90%-80%-70% scale, i.e. without plus or minus grades. I reserve the right to adjust the grading scale in your favor.


There will be a midterm exam on Friday, March 24. The midterm exam will cover the topics listed in the Course Outline.

There will be a comprehensive final exam on Friday, May 26.

Exams will consist of several short questions requiring a few written paragraphs, some calculations, or (in some cases) a drawing or diagram.

Programming Assignments

There will be twelve to fourteen programming assignments, spaced at approximately one-week intervals. Details for each assignment will be posted on the web at least six days prior to the due date.

You may work alone or with another student. If you choose to work with another student, both of you will receive the same grade on the assignment. Choosing a partner is not a semester-long commitment: you may choose to work with other students on subsequent projects.

Assignments are due by midnight PST on the due date. To submit assignments, click the "Submit an Assignment" link on the left side of the home page. You will need to have JavaScript enabled in your browser. Attach the source code for your project. Do not send compiled executables -- I will compile your programs myself when I test them. You will receive an automated reply.


You are not required to attend class except to take exams, but attendance is highly recommended.

Academic Dishonesty

The University Regulations (UPS 300.021) state:
Academic dishonesty includes such things as cheating, inventing false information or citation, plagiarism, and helping someone to commit an act of academic dishonesty. It usually involves an attempt by a student to show possession of a level of knowledge or skill which he/she in fact does not possess.

Cheating is defined as the act of obtaining or attempting to obtain credit for work by the use of any dishonest, deceptive, fraudulent, or unauthorized means. Examples of cheating include, but are not limited to, the following: using notes or aids or help of other students on tests and examinations in ways other than those expressly permitted by the instructor, plagiarism, as defined below, tampering with grading procedures, and collaborating with others on any assignment where such collaboration is expressly forbidden by an instructor. Violation of this prohibition on collaboration shall be deemed an offense for the persons collaborating on the work, in addition to the person submitting the work.

Plagiarism is defined as the act of taking the work of another and offering it as one's own without giving credit to that source. When sources are used in a paper, acknowledgment of the original author or source must be made through appropriate references and, if directly quoted, quotation marks or indentations must be used.

In a word, don't. You will receive an F in the course, and I won't even feel sorry for you. You have been warned.


The last day to drop the course without a grade of "W" is February 13.

The last day to drop with a grade of "W" for serious and compelling reasons is April 28.

Class Disruptions

Please turn off cell phones or pagers, or set them to vibrate.

On days that lab sessions begin with a demonstration or discussion, please pay attention. Don't ignore me in favor of checking your e-mail; there will be plenty of time for that when I finish.

Changes and Other Announcements

Changes to the class schedule or other announcements will be posted to If you wish, you may subscribe to the RSS feed.