Skip to main content

UC San Diego

Computer Graphics


Enrollment is Closed

CSE 167: About this course

Today, computer graphics is a central part of our lives, in movies, games, computer-aided design, virtual simulators, visualization and even imaging products and cameras. This course teaches the basics of computer graphics that apply to all of these domains.

Students will learn to create computer-generated images of 3D scenes, including flybys of objects, make a real-time scene viewer, and create very realistic images with raytracing. We will start with a simple example of viewing a teapot from anywhere in space, understanding the basic mathematics of virtual camera placement. Next, you will learn how to use real-time graphics programming languages like OpenGL and GLSL to create your own scene viewer, enabling you to fly around and manipulate 3D scenes. Finally, we will teach you to create highly realistic images with reflections and shadows using raytracing. CSE167 teaches the foundations of computer graphics.

This about page gives you access to the edX course material, originally developed for the MOOC online offering, which has the most of the assignments and automatic feedback systems as well as many helpful hints, in particular:

  1. Overview and Basic Math (Homework 0)

  2. Transformations (Homework 1)

  3. OpenGL and Lighting (Homework 2)

  4. Raytracing (Homework 4)

Please note that this material is provided as an optional supplement to the on-campus course and lectures, which is what your grade is based on. Most assignments (but not all; hw3 on curves will likely be handled separately) are available here, along with many helpful hints, and automatic feedback systems based on code and image graders. Note that the scores returned here are only guides, and your actual on-campus CSE 167 score will be determined by a human grader looking at this feedback for guidance, and may be adjusted for fairness; code inspection and more tests may also be run, and late penalties will be applied if warranted.

Prerequisites

  1. Solid C/C++ programming background (Java or Python is ok too; you will pick up C++).

  2. Access to a relatively up-to-date computer (Windows, Mac OSX or Linux)

  3. Solid high school mathematics; a review of the relevant linear algebra is included in the first segment.

What you'll learn

  • Understand the concepts of 3D graphics
  • Write and develop programs that create images of a 3D scene with lighting
  • Learn the basics of graphics programming with OpenGL and GLSL

Course staff

Ravi Ramamoorthi

Ravi Ramamoorthi is a Professor at UC San Diego. He has taught computer graphics more than 10 times at Stanford, Columbia and UC Berkeley, and has been honored with a number of awards for his research, including the ACM SIGGRAPH Significant New Researcher Award and by the White House with the PECASE (Presidential Early Career Award for Scientists and Engineers). He taught CSE 167x as the first UC San DiegoX course on edX (and earlier UC Berkeley CS 184.1x as one of the first 9 classes on the edX platform). He has been recognized as one of 11 finalists for the inaugural edX Prize for Exceptional Contributions in Online Teaching and Learning.

  1. Course Number

    CSE167
  2. Classes Start

  3. Classes End

  4. Estimated Effort

    12 hours/week