Selections from the SIGGRAPH 96 educator's program

We are developing a suite of interactive modules for teaching introductory computer graphics, using a library we have built to support such efforts.The modules provide explanations of fundamental concepts, tutorial demonstrations of basic techniques and interactive control or the parameters used in and execution of high level representations of elementary algorithms. The modules are used in laboratory sessions to supplement format lectures. Here, we present our philosophy in building the library and modules, discuss the lessons we have learned in our initial implementation and outline our fur,,re plans. Introduction Computer graphics is, by its very nature, highly visual.To supplement traditional teaching aids such as whiteboards and overhead projectors, 35ram slides and videotape segments can be used to illustrate relevant concepts. However, for students to appreciate fully both the algorithmic and visual aspects of the fundamental topics presented in an introductory computer graphics course, it is usually necessary for them to implemenr the various algorithms introduced. We are creating a suite of inrerective modules that both present the fundamental computer graphics concepts and algorithms and allow students to manipulate the principal variables involved. This approach not only obviates the need for students to "reinvent the wheel" w i~ a lot of tedious programmir~ but also allows them to explore many more of the basic concepts than is possible co cover in great detail in class presentations or programming assignments. Previous work has focused on using computer graphics to visualize algorithm execution [I, 5], assist the instructor in presenting in-class demonstrations [4] and provide hypermedia access to tutorials and demos [2, 3]. Our goal is to provide a self.contained, self-paced learning environment for students of computer graphics. Although our current use of the modules is supplementary to the material presented in formal lectures, we have built the modules with no assumption that the students have had any prior exposure co the concepts. In this way, a module is usable by those who have either missed or not understood the companion lecture, or are not even enrolled in the course. Around-theclock access in our laboratories allows the students to repeat the module unti l they understand the material and provides a useful source for review (e.g., before an exam). Because a module assumes no prior exposure to the topic presented, and because students may use the modules outside of scheduled lab times, progress through the module is deliberately sequential, ensuring that the concepts are presented in a logical order. A user can simply press the Cont(inue) button to step through the explanation and demonstration sections, until such rime as interaction is allowed or required. Modules We are implementing the modules using the C programming language and the Silicon Graphics GL library.The target machines for our use are SGI Indigo X524 workstations. To provide for ease of porting to other hardware and software platforms, we have isolated all of the GL code within our library routines, The following modules have been implemented and are currently being used in our courses: • Windows &Viewports (Figure I) • 2DTransformations (Figures 2 to 5) • Bresenham Line Drawing (Figure 6)