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 8 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 requires you complete 30/40 core MP points and 30/40 elective MP points based on if a student is taking it for 3/4 credit hours. Student get to choose between 8 core MPs and 16 optional MPs to gain their points from. In Fall of 2024, this class was graded with 30% infinitely retakeable quizzes and 70% MPs grade.

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.