CS 4600: Computer Graphics, Fall 2019

Course Information

Lectures: WEB L103, Mon/Wed, 11:50am - 1:10pm


Ladislav Kavan

Course objectives:

Gain hands-on coding experience with computer graphics techniques and algorithms covering 2D graphics, 3D graphics and computer animation. This course focuses on key algorithmic techniques and mathematical foundations, not on specific tools or software APIs. OpenGL will be mentioned only briefly, for a comprehensive introduction to OpenGL and shader (GPU) programming please refer to CS 5610/6610 (Interactive Computer Graphics).

Topics covered:

  1. Mathematics for computer graphics: linear algebra, matrices, dot/cross products, homogeneous coordinates, linear and projective transformations, quaternions.
  2. 2D Graphics: Colors, raster formats, Fourier and DCT transformations, image file formats, JPEG compression, image deformation, rasterization.
  3. 3D Graphics: Projections and view frustum transformations, visibility algorithms, 3D scene representation, ray tracing.
  4. Animation (or 4D Graphics - adding the time dimension): Skeletal animation and skinning algorithms.

Learning outcomes:

Upon completion of CS 4600, students will be able to:
  1. Implement encoding and decoding algorithms of raster image formats.
  2. Implement basic rasterization algorithms.
  3. Create interactive 3D graphics applications using OpenGL.
  4. Implement skeletal animation and understand how to make 3D objects move.
  5. Computer generate synthetic images of a 3D scene using ray tracing.
  6. Combine programming with creativity: graphics = coding + art.

Homework Assignments and Lecture Notes:

Available through our Canvas site


The University of Utah values the safety of all campus community members. To report suspicious activity or to request a courtesy escort, call campus police at 801-585-COPS (801-585-2677). You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, including helpful videos, visit safeu.utah.edu

Policies and guidelines:


In this course, any of the following cases is classifed as academic misconduct: 1) sharing your homework assignment solution or its part with another student, or 2) requesting or using parts of homework assignment solutions prepared by another person, or 3) re-using code from third parties (such as code fragments from online tutorials, software libraries, or books). Academic misconduct as defined above will result in a failing grade sanction, according to the School of Computing Academic Misconduct Policy.


The best place to ask are Canvas Discusson Boards

Textbooks (optional):

Shirley & Marschner, Fundamentals of Computer Graphics, 4th edition.

Gortler, Foundations of 3D Computer Graphics, 1st edition.

Useful links:

Online C++ tutorials

Online OpenGL tutorials

ACM Digital Library (SIGGRAPH papers and recorded presentations)

Undergraduate Research Opportunities (UROP)

Ke-Sen Huang's Computer Graphics Resources (non-official but very useful)