4565 Home



CSC 4565/5565 Introduction to Computer Graphics

Instructor: Dr. Min-Hyung Choi
Office: Lawrence St. Center LW812

Class: Mon, Wed 3:30 - 4:45pm
Office Hour: M 2-3:30PM   W 2-3:30PM
Teaching Assistant: To be announced

CSC3412 Algorithms, C/C++ Programming, Math 3191 Linear Algebra  

Catalog Information
Introduces two and three dimensional computer graphics. Topics include scan conversion, geometric primitives, transformation, viewing, basic rendering, and illumination. Emphasis is on programming using "C" and "C++" Open GL. Prereq: CSCI 3412 and MATH 3191 or 3195. Cross-listed with CSCI 5565. Max hours: 3 Credits. Semester Hours: 3 to 3


Computer Graphics with OpenGL (4th edition)
by Hearn & Baker

Publisher: Pearson; 4 edition
ISBN-10: 0136053580
ISBN-13: 978-0136053583


Recommended Book

OpenGL Superbible 7th Edition

Publisher: Addison-Wesley Professional; 7 edition
ISBN-10: 0672337479
ISBN-13: 978-0672337475


Course Objectives

The aim of the course is to develop understanding of and gain experience with the basic techniques of interactive computer graphics. There will be substantial emphasis on 3D graphics and on developing proficiency in OpenGL graphics programming. We will cover much of the material in the textbook, though not in the order presented in the book.


  • OpenGL
  • 2D interaction
  • Graphics primitives
  • Viewing and projection
  • Surface rendering
  • Illumination model
  • Curve and curved surface
  • Texture mapping
  • Ray tracing
  • Graphics hardware


Requirements and grading

Course grades will be based on approximately 6 homework assignments, one midterm test, and a final exam. Programming problems will usually be given as part of regular written homework assignments; there will not be a separate grading category for programming assignments. Class participation and effort may be taken into account in determining grades in borderline situations. The components will be weighted roughly as follows

Homework assignments 40%
Midterm exam30%
Final exam 30%  

Percentage of the total accumulated score will be used for letter grades in following scale
90-100 % A/A+, 80-89% B/B+, 70-79% C/C+, 60-69% D/D+, Below 60% F
NOTE:I reserve the right to modify any or all of these percentages based on the curve.

4565 and 5565 will have different scope and criteria for exams and assignments.
Specifically, 5565 will include more in-depth reseach components.

Semester schedule

The approximate schedule is below. It will be updated regularly, and will reflect what was actually covered and when.




Week 1:

Introduction to Computer Graphics


Week 2:

OpenGL, GLUT basic


Week 3:

2D graphics primitives


Week 4:

Coordinates, frames


Week 5:



Week 6:



Week 7:

Rendering, Gouraud, Phong shading


Week 8:

Lighting, material


Week 9:

Modeling, Interaction techniques


Week 10:

Clipping and rasterization


Week 11:

Spline, curves


Week 12:

Curved surfaces


Week 13:

Texture mapping


Week 14:

Graphics hardware


Week 15:

Ray tracing, radiosity, global illumination


Week 16:

Preparation week



Programming language, graphics API and toolkits

Program code and/or examples in lectures will be given in C, C++, and OpenGL (or pseudo-code). For homework and programming assignments both C and C++ are acceptable.

The graphics API used for the course is OpenGL. The departmental lab will provide PCs with OpenGL. The OpenGL API does not deal directly with windowing systems and user interaction. We will use the GLUT (OpenGL Utility Toolkit). It is a library that provides a simple interface for windowing operations and user interaction. Issues specific to particular windowing systems or operating systems are hidden within the GLUT implementation. Thus, programs written using OpenGL plus GLUT are portable across operating systems.

Refer to Programming Guide for more information.


Late assignment policy:

You should expect to spend around 8 hours per week on this course. This includes the time you will need to complete the readings, as well as any discussion work that week. Do not expect to succeed in this course if you do not allocate sufficient time in a week for this class!

Late work is accepted entirely at the discretion of the instructor given all the supporting documents. Any work accepted late will be graded down a minimum of one full grade. In most cases, only partial points will be given for late work.

Completing assignments on time is critical to your success in the course!

In the case that you will not be able to complete work the week it will be due, please contact the instructor to see if other arrangements are possible.



Academic integrity:

Homework and programming assignments, except when explicitly specified otherwise,  should be done alone. It is reasonable to discuss general approaches to problem solutions or algorithm design with other students but the bulk of the work must be done alone. Working out details, sharing in the write-up or sharing or copying code, regardless of the amount of copied contents, will be treated as a violation of the academic integrity rules.

Student Honor Code: We will adhere to the College of Engineering and Applied Science Student Honor Code.

University Academic Honor Code and Discipline Policies

CSE Department Cheating Policy

Academic dishonesty policies established by the University of Colorado System, the University of Colorado Denver, and the College of Engineering and Applied Science apply within the Computer Science and Engineering Department. Faculty decisions on cheating--whether it has occurred, and the severity of the offense--depend on several factors:

  • intent of an assignment

  • rules established by the instructor

  • behavior of the student

Criteria for judging potential cheating incidents include the following:

  • Plagiarism will be suspected if an assignment that calls for independent work shows evidence of having been substantively copied, in whole or in part, from some other source. More specifically, plagiarism will be suspected if an assignment that calls for independent creation of a computer program results in two or more programs from different students, that are so similar that one can be converted to the other(s) by simple mechanical transformation. The suspicion of cheating bears equally on ALL submitters of programs that are mutually similar in the sense described here; allowing copying to occur is no less an offense than the act of copying.

  • Cheating will be suspected if a student who submits an assignment as independent work cannot explain both the intricacies of the solution and the techniques used to create that solution.

The determination of cheating in a course is the instructor's responsibility. The penalty for cheating--wherever or whenever the cheating is determined to have occurred--is failure of the course.