[MSOE Homepage]

Dr. Taylor's MSOE Homepage


Unix is a Four
Letter Word

Photo Album

Personal Homepage


Lab 1 -- Intro to Unix

Lab 2 -- Derived and Container Classes

Lab 3 -- The Graphics Shell

Lab 4 -- 2-D Graphics

Lab 5 -- 3-D Graphics

CS-321 - Computer Graphics

Summer Quarter 1999

Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor

S-331, 277-7339
t a y l o r@m s o e.e d u (remove spaces)

This course introduces the student to computer applications for the visualization of information. Algorithms, data structures, graphics primitives, and graphics standards are discussed in addition to hardware aspects of interactive computer graphics. Topics such as two- and three-dimensional transformations, graphics databases, and clipping algorithms are presented. Laboratory exercises using workstations and industry-standard graphics packages provide opportunities for students to develop interactive graphics algorithms and applications. (prereq: CS-285) (3-3-4)


On successful completion of this course, the student will:

  • understand and be able to apply concepts of object-oriented programming, inheritance, polymorphism, and event-driven systems
  • be able apply data structures to the management of computer graphics entities
  • be able to use reference materials to gain knowledge of an unfamiliar software system (e.g., X Window System)
  • be able to implement multi-module software systems incorporating components developed by others
  • understand the need for extensive internal software documentation, and be able to provide it


Computer Graphics C Version, 2nd Ed., by Donald Hearn and M. Pauline Baker, Prentice-Hall, 1997.

Recommended Reading

The Definitive Guide to the X Window System Vol. 2, O'Reilly & Associates, Inc., 1992.

The X Window System in a Nutshell, O'Reilly & Associates, Inc., 1992. (out of print)


Building OSF/Motif Applications: A Practical Introduction, M. Sebern, Prentice Hall, 1994.

The Definitive Guide to the X Window System Vols. 1-10, O'Reilly & Associates, Inc., 1992.

Web resources


There will be a mid-term exam and a comprehensive final in this course. It is your responsibility to be present for the exams. Please contact me in advance if you have a valid conflict with a scheduled exam.


Each student must submit an individually written report for each laboratory assignment. Reports should include software code written as part of the lab project and should conform to the specified documentation standards. In addition, students must demonstrate the operation of each lab project to me. There is a 20% per class late penalty for lab reports submitted after the scheduled due date. No reports will be accepted after 5:00pm, July 15, 1999. The lowest attempted one-week lab will be dropped. If the lowest attempted lab is a two-week lab, only half of the lab grade will be dropped.


Lab reports/Performance:


Mid-term exam: (June 24)


Final exam: (July 15)





Attendance in class is expected. If you decide to drop out of the course, it is your responsibility to notify the registrar. I will not drop you for missing class. If you stop coming to class without notifying the registrar that you are dropping the course, it is likely that you will receive an "F" grade.


Students are expected to act in a professional manner in dealing with all matters pertaining to this course. In particular, deceptive practices of any sort are unacceptable (e.g., submitting source code that does not run correctly without clearly identifying the problems with it). Note that copying is not necessarily unprofessional. Engineers copy good ideas from many sources all the time (subject to ethical and legal constraints). If you do copy something, you must give credit to the source (e.g., article, book, fellow student). Also, be sure you understand anything that you copy, as you will be responsible for it.

Lab projects are to be your own work. This does not mean that you cannot discuss ideas and approaches with other students or faculty, but the final product must be yours alone. At times it may be difficult to know where to draw the line between beneficial cooperation and parasitic freeloading. For this course, it is not legitimate to collaborate to the extent of sharing source code for all or part of a particular lab project. In particular, you should never be in possession of a copy (in any form) of all or part of another student's source code. If you have any question as to what types of cooperation are acceptable, please talk to me.


You are responsible for assignments and announcements made in class or lab. You should periodically check the Web pages for this course.

Feedback Wanted

I am interested in your feedback on how I can make this course better. Please feel free to stop by my office or send me email with suggestions on how I can make this a better class for you. Don't wait until evaluation time because I won't see those comments until the quarter is over.

Electronic Submission Procedure

All laboratory reports for this course must be submitted electronically. You are responsible for ensuring that each report is emailed to me. In particular, it is your responsibility to make sure you type in the correct email address, etc... If you do not receive a message confirming that I received your submission, you should assume that I didn't receive it.

All reports will be graded and returned to you by email. The graded reports will be in Adobe Acrobat's Portable Document Format (PDF).

Tentative schedule

Date Topic Reading Laboratory
6/1 Overview/Computer Graphics Hardware 3-81 Lab 1: Unix
Due: 5pm 6/3
6/3 Point/Line/Circle Drawing 84-110, 114-117 Lab 2: Derived and Container Classes
Due: 5pm 6/10
6/8 Filling Algorithms 117-130
6/10 Drawing Attributes 144-180 Lab 3: Graphics Shell
Due: 5pm 6/17
6/15 2D Transformations 184-207, 217-224
6/17 Clipping 224-244 Lab 4: 2D Graphics
Due: 5pm 7/1
Double Credit
6/22 Catch-up/Lab time
6/24 Mid-term Exam
6/29 3D Graphics 297-334
7/1 3D Transformations 408-429, 432-468 Lab 5: 3D Graphics
Due: 5pm 7/15
Double Credit
7/6 Surfaces 470-481, 495-522
7/8 Catch-up/Lab time
7/13 Color models 565-581
7/15 Final Exam