CMPS 371 Computer Graphics
Catalog Description
CMPS 371 Computer Graphics (5)
Introduction to computer graphics hardware, animation, two-dimensional transformations, basic concepts of computer graphics, theory and implementation. Use of graphics API(s) such as DirectX or OpenGL. Developing 2D graphics applications software. Prerequisite: CMPS 223.
Prerequisites by Topic
Programming skill in a high level language and knowledge of data structures and algorithms.
Units and Contact Time
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Note: most courses will have this breakdown, update as needed if your course does not.
Required for CIS.
Selective elective for CE|CS|EE.
Required Textbook
Fundamentals of Computer Graphics
Peter Shirley, Steve Marschner
3rd Edition (July 21, 2009)
ISBN-10: 1568814690
ISBN-13: 978-1568814698
Recommended Textbook and Other Supplemental Materials
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3.
8th Edition
Available free online at:
Dr. Arif Wani, Gordon Griesel
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

CS-??: ...
ABET Outcome Coverage

The course maps to the following performance indicators for Computer Science (CAC/ABET) or Computer Engineering (EAC/ABET) or Electrical Engineering (EAC/ABET):

(CAC PIa1, EAC PIa1): Apply and perform the correct mathematical analysis.
Homework and exams will require knowledge of math formulas used in computer graphics, and translating basic math into program code.
(CAC PIb1): Identify key components and algorithms necessary for a solution.
Students will be required to learn the fundamental algorithms used in computer graphics.
(CAC PIi1): Program in a suitable computer language.
Use of C/C++ with X-Windows and OpenGL under Linux is required.
(CAC PId3, EAC PId3): Research and gather information.
Skills needed to accomplish the final project.
(CAC PIj1): Understand performance and cost as these relate to software/firmware-based and hardware-based implementations.
Choosing CPU vs GPU for solutions to graphical problems.
Lecture Topics and Rough Schedule

Week 1 Graphics framework, line drawing
Week 2 Area filling, triangles, polygons
Week 3 Animation, curves
Week 4 Ray casting, vectors, intersections
Week 5 Ray tracing, perspective, lighting
Week 6 Image systhesis, photo realism
Week 7 OpenGL, matrix transformations
Week 8 Models
Week 9 Images, textures, blending
Week 10 Final projects, special topics
Design Content Description
Not applicable to this course.
Prepared By
Gordon Griesel on June, 2014
Approved by CEE/CS Department on [date]
Effective [date]