DMS 423/523: Programming Graphics 1
Fall 2005

Course Info

When: Tuesday/Thursday 2:00 - 3:50 pm
Where: CFA 242

Instructor: Dave Pape
e-mail: depape at
Office: CFA 250
Office hour: Mon 1-2


Course Description

This production course introduces students to the concepts and practice of programming 2-D and 3-D computer graphics using OpenGL. The major focus is on developing the skills needed to create interactive, real-time CG experiences. Students write their own code to create customized computer tools and visuals and learn the fundamentals of graphics.

Upon completing this course, a student should have an understanding of basic computer graphics technical concepts - e.g., be able to describe the different types of geometric transformations, define what a normal vector is and what it's used for, understand how a texture image is applied to a shape, etc. The student should also be comfortable with using programming and mathematics (trigonometry, interpolation, vectors) to build and control a graphical scene.


There is no single required text. Rather, students should choose one of the following texts, based on their background and programming experience:

Useful websites:


The major topics that we will cover are:


You are allowed up to two free absences; after that, each absence will cost you 2% of your overall grade. A significant fraction of class time is going to be spent doing hands-on work, applying the concepts that have been covered in lecture; regular attendance will be vital to actually learning these concepts.

Assignments will be given in class, and due electronically one or two weeks later (depending on the assignment). Late assignments are penalized one letter grade per 24 hour period that they're late. (So one that's more than 72 hours late will not earn any points.)

Assignments will be graded first on whether they visually accomplish what was required, using the techniques specified, and second on code quality. It is important that code be clear and understandable, both so that you can work on it, and so that others can make use of it in the future.

All assignments and projects must be your own work. Work is to be done individually - do not share code with, write code for, or copy code from other students. This applies to all assignments while they are outstanding - i.e., until everyone's program has been turned in and graded. A first violation of this policy will result in failure of the assignment; repeated violations will result in failure of the course. See below for further official warnings about plagiarism.

A note on Incompletes

(Borrowed from CS Department)

Generally, incomplete ("I") grades are not given. However, very rarely, circumstances truly beyond the student's control prevent him or her from completing work in the course. In such cases the instructor may give a grade of "I". The student will be given instructions and a deadline for completing the work, usually no more than 30 days past the end of the semester. "I" grades can be given only if the following conditions are met:

Incompletes cannot be given as a shelter from poor grades. It is the student's responsibility to make a timely resignation from the course if he or she is doing poorly for any reason.

Other details


I will send any e-mail relating to this course to your official address. Be sure that you check this address. Do not ask me to send e-mail to another address instead - if you don't want to use the mail system, forward your mail from there to whatever system you do use.

Also, be warned that mail from free services like Hotmail or Yahoo has a strong chance of being caught by spam filters. Hence, I recommend not sending me e-mail from such an address, if you want to be certain that I'll receive it.

Lab Fee

For the Fall 2005 semester, all DMS production courses carry a lab fee of $100 per course.

Students with Disabilities

If you have a disability (physical, learning or psychological) which may make it difficult for you to carry out the course work as outlined, and/or requires accomodations such as recruiting note takers, readers, or extended time on exams and assignments, please contact the Office of Disability Services, 25 Capen Hall, 645-2608, and also your instructor during the first two weeks of class. ODS will provide you with information and will review appropriate arrangements for reasonable accomodations.


Plagiarism is literary theft and a betrayal of trust. The term is derived from the Latin word for kidnapper and refers to the act of signing one's own name to words, phrases, or ideas which are the literary property of another. Plagiarism comes in many forms, all to be avoided: outright copying, or paraphrase, or a mosaic or disguised use of words and phrases from an unacknowledged source. To avoid plagiarism, make it your habit to put quotation marks around words and phrases, or to isolate and indent longer passages, that you are using from someone else's writing. And be sure to cite the source, in a footnote or endnote, or within parentheses in your text. The penalties for plagiarism can be severe: from an F for the particular assignment, to an F for the course, to referral of the case to the Dean of Undergraduate Education for administrative judgment. If you are unsure about how to use and document sources, please consult with your instructor.


If you are planning a student production which involves using any prop which could be interpreted to be a weapon [toy gun, BB gun, knife, etc.] and you are planning to shoot on the UB campus or any other public place, you must obtain written permission from Campus Security or the equivalent authority before you shoot. If you do not, you will face serious problems including possible expulsion from the university.