Course Syllabus,
CS 5721 Computer Graphics
Spring Semester 2004

Course Data:
Instructor: Doug Dunham
Web Site:
Office:311 Heller Hall
Office Hours: M, W, F 10-11, and Tu 2-4, and by appointment
Lectures: M, W, F 1 pm in HH 302
Lab: M 5 pm in MWAH 177
Course Web Site:
Course directory: /opt/local/studata/COURSES/cs5721 (see below)

Teaching Assistant: Rashmi Kankaria
Web Site:
Consulting Hours in HH 314: Tuesday 6-8 p.m. and Thursday 6-8 p.m.

A detailed list of Course Outcomes is at:

Bulletin Description:
Design of programs using 2D and 3D graphics packages. Introduction to modeling and viewing transformations, illumination models, design of hierarchical geometric models, animation. Analysis and implementation of basic graphics algorithms: scan conversion, clipping, visible surface determination, and rendering.

Semester prerequisite: CS 2511, Math 1297 or #, or the equivalent if you are a transfer student.
Important note: The computer science program at UMD is accredited by CAC (the Computing Accreditation Commission). One of the CAC requirements is that all students must satisfy the prerequisites in order to be admitted to a course, so if you have not passed the prerequisite courses, you will be asked to drop this course (if you have any questions about this, please see the instructor after the lecture or during office hours).

Course Objectives and Content:
This course provides an introduction to 2- and 3-dimensional computer graphics, including basic algorithms and the mathematics behind the transformations and viewing operations. The following is an outline of the material to be covered in the course. We will start with an introduction to computer graphics, followed by a simple (2D) raster graphics package and its algorithms. Then we will cover geometrical transformations and viewing in 3D, and use them with a 3D graphics package. Finally, we will cover material from solid modeling, the theory of colored light, visible-surface determination, and illumination and shading.

There will be weekly individual programming assignments that illustrate concepts in 2- and 3-dimensional computer graphics. The graphics software libraries that will be used for this course require that the programs be written in C or C++.

Equal Opportunity:
The University of Minnesota is committed to the policy that all persons shall have equal access to its programs, facilities, and employment without regard to race, color, creed, religion, national origin, sex, age, marital status, disability, public assistance status, veteran status, or sexual orientation. As instructor, I am committed to upholding University of Minnesota's equal opportunity policy. I encourage you to talk to me in private about any concerns you have related to equal opportunity in the classroom. To inquire further about the University's policy on equal opportunity, contact the Office of Equal Opportunity, 269-273 DAdB, (, phone: (218) 726-6827 or (218) 726-6849, email:

Students with Disabilities:
If you have any disability (either permanent or temporary) that might affect your ability to perform in this class, please inform me at the start of the quarter. I may adapt methods, materials, or testing so that you can participate equitably. To learn about the services that UMD provides to students with disabilities, contact the Access Center/Disability Services 102 Kirby Student Center, (, phone: (218) 726-8217 or TTY (218) 726-7380, email: or contact the Office of Equal Opportunity, 269-273 DAdB, (, phone: (218) 726-6827, email:

Computer Graphics: Principles and Practice, by Foley, van Dam, Feiner, and Hughes, Addison Wesley, 1990, 1996. ISBN: 0-201-84840-6

Course Directory:
There is additional, important information, including information on the graphics packages we will be using, in the class directory:
There is a README file in that directory that explains what is in the files and subdirectories.

Course Requirements:
It is not directly required that you attend class, however: a tenth of a point will be awarded for attendance at each class meeting and each lab meeting.

Also, you are responsible for reading assigned text material and for material covered in class, including:

  1. doing the reading assignments from the text
  2. the material covered in the lectures
  3. obtaining assignments and handouts
  4. turning in programming assignments and homework

If you are unable to attend a class meeting, it is your responsibility to obtain class notes, assignments, and extra copies of handouts from your study partner. Note: assignments are due at the beginning of class on the due date (unless otherwise specified) -- they will be docked 25% per day if turned in late.

As mentioned above, the software that we will be using requires that programs be written in C or C++. The programming assignments should adhere to the Computer Science Lab Report Format.

Getting Help with Programming Assignments: There are several things to be noted. First, all lab assignments are to be your own work -- there will be no group labs in this course. That doesn't mean that you can't get any help at all, but you should not copy code from other students. However, if you get stuck on some point in understanding the assignment, or get a bug that you can't figure out, then it is all right to ask your study partner.

Second, when you and your study partner get stuck on a bug that you can't figure out, bring printouts of all your files (.c/.cpp and .h files, and input and output files, if any) and the error messages to the TA or instructor.

When debugging, use the instructor as a last resort after trying all the other resources. The instructor can answer questions involving interpretation of the assignments if the TA doesn't have the answer.

Examinations and Grading:
There will be a midterm exam, worth 100 points and a final exam worth 200 points. These exams are closed book. The final exam will be comprehensive. Exams will not be given early, and makeups must be justified by dire circumstances described to the instructor before the time of the exam.

Exam Schedule:
ExamPointsDate and Time
Midterm Exam 100 points Wednesday, March 10, 1-1:50 pm in HH 302
Final Exam 200 points Thursday, May 13, 2-3:55 pm in HH 302

It is Department of Computer Science policy not to return final exams, however they are kept and you can look at your exam in the instructor's office. The section Final Examination Conflicts on the Final Examination Policy web page explains the UMD policy about having more than two final exams on a single day.

Scores and total points will be maintained by the TA on the TA's web site. At the end of the semester, scores, total points, and grades will be posted on the "Grades" page of the class web site:
using the last digits of your student id number. If you wish to have your scores posted using a number other than the last digits of your student id, you may email your request to the instructor.

Grading Procedures: Final grades are based on total points distributed approximately as follows:

Grades are assigned based on a percentage of the total points. These percentages may be lowered slightly but they will not be raised.
Important note: In the past, students have tended to do better on the lab and homework assignments (average = 90%) than on the midterm (70%) and final (55%) exams. Thus class averages going into the final exam tend to be higher than after the final exam. This leads to the following two pieces of advice: (1) keep your average as high as possible by doing well on the lab/homework assignments, and (2) study carefully for the exams, using the review guides, so that your average isn't brought down by poor exam scores.
The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.
Page URL: /~ddunham/cs5721s04/syllabus.html
Page Author: Doug Dunham
Last Modified: Wednesday, 21-Jan-2004 17:37:46 CST
Comments to: