Skip to content

CS418

CS418 (Interactive Computer Graphics) is a 3/4-credit-hour course that satisfies the Technical Electives requirement for ECE majors and satisfies an Advanced Computing Elective for CEs. It has traditionally been offered every fall and spring semester, with the exception of Spring 24 (thus, it may in future be restricted to fall semesters.)

Content Covered

  • Rasterization and raytracing
  • WebGL2, a GPU API
  • Math and algorithms behind computer-generated 3D geometry
  • Rendering, texture mapping, camera
  • Graphical motion simulation, particle effects
  • Shadow maps
  • Inverse kinematics and fluid dynamics
  • Fractals

CS418 offers a hands-on introduction to computer graphics. Students will learn about Graphical Processing Units (GPUs) and how to program them for graphical applications. The standard language used is C/C++ with the OpenGL library, but ambitious students are allowed to explore other technologies, languages, and libraries (like WebGL) for their MPs. The course material also covers essential topics in computer graphics like color theory, perspective viewing, transformational geometry, the graphics pipeline, lighting techniques, textures and environment mapping, parametric surfaces, vertex and fragment shaders, physical simulation, and animation.

Prerequisites

The official prerequisites are CS225, one of MATH257 or MATH415, and MATH241. If you know enough about matrix theory and basic matrix math manipulations, you can probably get away with not taking MATH257 or MATH415. This course assumes knowledge of C/C++ programming and data structures (CS225), vector calculus (MATH241), and some matrix theory (MATH257 or MATH415).

When to Take It

Most people that take it do so during their junior or senior year, but this course can be taken as soon as you complete the prerequisites. CS418 is typically offered every semester. It's a good technical elective to round out a solid course load, without adding too much extra work. It is also cross-listed as a CSE course (CSE427), so if you are pursuing the CSE minor, this might be a course for you to consider taking.

Course Structure

This class has 4 different MPs, each designed to demonstrate mastery of the topics described above. Students get a few weeks to do each MP, which is usually plenty of time to finish. The best part is that when students finish each MP, they end up with a really nice graphic that would be great as part of a portfolio to show off to future employers. The class also has 2-3 written exams over the course of the semester, which test overall understanding of the topics and techniques discussed in class. For an MP-based technical elective, this course is not overly time consuming.

Instructors

The primary instructor is Professor Luther Tychonievich. Interestingly, the course was taught in a synchronous format up until Fall 2023. It has now been made asynchronous and online for Fall 2023 and Fall 2024 to accommodate online students in the MCS program.

Life After

Students interested in learning more about programming graphics cards may be interested in ECE408, which teaches CUDA, a language which enables general-purpose parallel computations on graphics cards.