CS 248 is the first course in the Stanford computer graphics sequence. It teaches the fundamentals of grayscale and color display, sampling theory and antialiasing, digital compositing, image warping and morphing, scan conversion algorithms, 2D and 3D geometric transformations, visibility algorithms, lighting and reflection models, and image-based rendering.
Beginning in 1999, we introduced a 3D video game as the central project of the course. Students were free to design and implement any sort of game they liked, as long as it included a 3D world viewed in perspective, demonstrated lighting and textures, and included some advanced real-time graphics features like collision detection, level-of-detail control, occlusion or view frustum culling, multipass rendering, etc. A variety of platforms (UNIX, PCs, Macs) were used, and all games were implemented in OpenGL.
In addition to the course assignment, students could optionally participate in a video game competition. While grades for the assignment were based mainly on "technical merit", entries in the competition were judged on technical merit, compelling game play, and originality. The winner was selected by a panel of computer graphics experts drawn from industry and academia. There was one grand prize - an all-expenses-paid trip to Siggraph the following summer, and a number of runner-up prizes.