Sep 7

Welcome to CS123!

This course offers an in-depth exploration of fundamental concepts in 2D and 3D computer graphics. After introducing 2D raster graphics techniques, the course focuses on 3D modeling, geometric transformations, 3D viewing and rendering.

A sequence of assignments in C++ culminates in a simple geometric modeler and ray tracer. Meanwhile, a sequence of labs introduces real-time rendering with OpenGL. Students finish the course by building a demo scene using modern OpenGL techniques.


Undergraduate students taking this course are expected to have completed any intro sequence (15/16, 17/18, or 19), and should also have taken CS32, or have strong software engineering skills.

Although the course is targeted at juniors, sophomores who did well in the intro sequence and have strong programming skills are able to take CS123.

Graduate students are also encouraged to take this course; graduate credit is obtained by completing the additional half credit requirements found in most projects.

Prior knowledge of C++ or linear algebra is helpful, but not required to take CS123. Students not already familiar with these concepts are encouraged to attend helpsessions that will be provided during the semester.