CGE 02 - Final Report

Steve Cunningham

At the computer graphics education workshop held in Coimbra, Portugal in 1999, the group on computer graphics in computer science had the following primary (and abbreviated) recommendations:

  1. The rendering pipeline is of enduring importance, but its treatment will vary depending on the course,
  2. Graphics is interactive, and event-driven programming is essential in the introductory course, and
  3. Graphics is visual and must consider the user’s perception of the output as well as more technological effects.

The 2002 working group on the beginning computer graphics course in computer science discussed that course in a number of settings, and developed the following eight elements that we believe a student should understand when he or she has completed the beginning computer graphics course:

  • Transformations
  • Modeling: primitives, surfaces, and scene graphs
  • Viewing and projection
  • Perception and colour models
  • Lighting and shading
  • Interaction, both event-driven and using selection
  • Animation and time-dependent behaviour
  • Texture mapping

The sequence of elements above is not critical. The elements may be re-ordered as needed for an individual program, though there are natural prerequisites among some of them. Further, the elements may be covered in any way appropriate for the particular course and are independent of whatever graphics API, if any, is used. For example, they may be covered with material that emphasizes fundamental mathematics and algorithms for graphics, or they may be covered in a practical way that emphasizes the role of each element in creating interactive or animated images whose goal is graphical communication. The elements are open to new implementations and advanced techniques as these are appropriate to the particular course.

The group identified a few kinds of computer graphics courses that could cover these elements but provide different emphasis for students. We chose to identify these courses by their content and the learning outcomes they could provide for students. These include the following:



mathematical and algorithmic

ability to understand and implement elements of specialized graphics APIs

focus on designing and creating effective images

understanding the nature of the graphics elements and their roles in creating an image, and ability to create an effective graphical communication for a particular audience

provide tools for applications in a number of fields such as engineering

experience with visual or graphical communication, ability to define the functionality of graphics needed for an application, understanding standard tasks for standard kinds of images or visual communications

The background expected of students for this introductory computer graphics course also varies, depending on the way the elements will be presented and developed. If there is a strong algorithmic and theoretical presentation, a sound background in mathematics and mature computing experience will be needed. On the other hand, if the course is developed from a practical, image-creation point of view, it may be sufficient to have merely enough programming background to deal with the graphics API. In any case, it is clearly to a student’s advantage to have some background in spatial thinking and analytical geometry.

The choice of API, or even whether to use an API at all, will depend on the resources of the program and the goals of the instructor. As this is written, in mid-2002, the most common API for graphics courses is OpenGL, but others use various scene graph APIs, ray tracing, or simple pixel setting. The group did not see any reason for a beginning course to choose one API over another as long as it is possible to cover all the elements above.

The group recognized that in some programs where there are advanced computer graphics courses, portions of the beginning course may be found in other courses. In this case, we would simply emphasize that every computer graphics student might be expected to be familiar with all the elements above so students in the beginning class might need to take additional work to achieve that goal.

The group noted that even in the beginning course, computer graphics offers a rich background for group projects and suggests that it can be a valuable resource for programs that emphasize group work.

We recognize that others at the workshop are developing recommendations on perception and esthetic elements in computer graphics, and recommend that these areas be strongly considered for inclusion in a first course, consistent with the recommendations of the 1999 workshop in the visual and perceptual area as briefly noted above.

Relation of this material to CC2001

The curriculum recommendations for computer science published by ACM and IEEE, called the Computing Curriculum 2001 (CC 2001), include very little computer graphics in the core curriculum. Their description of the curriculum includes the following outline of what they term Graphics and Visual Computing. The underlined topics are assumed to be covered in the core curriculum of any computer science programme, and the numbers beside them are the minimal number of hours this coverage is expected to provide. Detail on the individual areas is provided in the CC2001 report.

GV. Graphics and Visual Computing (3 core hours)
GV1. Fundamental techniques in graphics (2)
GV2. Graphic systems (1)
GV3. Graphic communication
GV4. Geometric modeling
GV5. Basic rendering
GV6. Advanced rendering
GV7. Advanced techniques
GV8. Computer animation
GV9. Visualization
GV10. Virtual reality
GV11. Computer vision


The sample course that the CC2001 document suggests as an intermediate course is given below in an Appendix to this report. This course is a hybrid graphics/HCI course that does not seem to come close to covering the elements we described above. This course would give 16 hours to HCI topics and 6 hours to VR and multimedia topics, and only 15 hours (at most) to basic graphics concepts. We believe that this course would not be adequate to be called a genuine beginning computer graphics course and hope that someone will develop and publish a course description for a better beginning computer graphics course.

While we do not recommend that computer graphics be included as a full-course core topic for all computer science programs, we believe it merits more emphasis than the extremely sketchy way the five hours are placed in the example programs described in the curriculum documents. Because of the different kinds of beginning classes that we identify above, the role of computer graphics in the computer science curriculum is quite flexible and can serve important learning goals such as providing a capstone experience (for the algorithmic course) or building the communication skills of the computer science student (for the visual communications course). It also provides an example of the power of computation to create useful results that is not available in most undergraduate computing areas.

Advanced Courses

The group recognizes that computer graphics is a much richer field than could ever be represented by a single beginning course. We recommend that additional work be done to identify various kinds of advanced courses and describe their contents, so that instructors who want to develop such courses will have assistance in doing so. As a rough start to some of this work, the group identified the following topics that might be covered in advanced courses

• Complete the background from the beginning course
If the beginning course has focused on image creation for visual communication, it could be appropriate for a second course to fill in the mathematical and algorithmic background of the graphics pipeline, and then to pick topics from other areas below to fill out the course.

Advanced modeling
Conversions of standard representations, such as boundary representation or constructive solid geometry; special data structures for modeling; creation and operations on meshes; interpolation surfaces and NURBS; procedural modeling; parametric modeling; volume modeling; particle systems; generation description including fractals; collision detection and avoidance; minimal surfaces and other advanced topics.

• Visualization
Perception and visual communication; considerations for accessibility for persons with limited perceptual skills; modeling techniques for theoretical or measured data; color ramps and other synthetic color schemes; special techniques for scientific or information visualization; coordination with sound, haptic, or other modalities; networked graphics; VR environments; high-performance computing.

• Rendering and lighting
Rendering equation; ray tracing and ray tracers; global illumination: radiosity, photon mapping; anisotropic reflections; realism and perception; shaders and shading languages; texture synthesis; volume rendering; image-based rendering; non-photorealistic techniques; programmable per-vertex or per-pixel rendering operations.

• Hardware
Specialized techniques to support or accelerate the graphics pipeline; programmable hardware for per-vertex or per-pixel operations; applications in volume rendering, medical techniques, or games.

However, as these topics are expected to be addressed in a future workshop that focuses on advanced courses, we do not attempt to make this list complete in either depth or breadth, and invite interested persons to keep in touch with the ACM SIGGRAPH and Eurographics education programmes for more details.

Working Group Participants:

Marc Alexa
David Duce
Nick Holliman
Cary Laxer

Steve Cunningham
Majid Mirmehdi
Luis Paulo Santos
Pavel Slavik


The CC2001 beginning course in computer graphics
from the CC2001 final report, December 15, 2001, pp. 218-219


CS255{S,W}. Computer Graphics
Offers an introduction to computer graphics, which has become an increasingly important area within computer science. Computer graphics, particularly in association with the multimedia aspects of the World-Wide Web, have opened up exciting new possibilities for the design of human-computer interfaces. The purpose of this course is to investigate the principles, techniques, and tools that have enabled these advances.

Prerequisites: introduction to computer science (any implementation of CS103 or CS112), discrete structures (CS106 or CS115), linear algebra


  • Graphic systems: Raster and vector graphics systems; video display devices; physical and logical input devices; issues facing the developer of graphical systems
  • Fundamental techniques in graphics: Hierarchy of graphics software; using a graphics API; simple color models; homogeneous coordinates; affine transformations; viewing transformation; clipping
  • Graphical algorithms: Line generation algorithms; structure and use of fonts; parametric polynomial curves and surfaces; polygonal representation of 3D objects; parametric polynomial curves and surfaces; introduction to ray tracing; image synthesis, sampling techniques, and anti-aliasing; image enhancement
  • Principles of human-computer interaction: Human-centered software development and evaluation
  • Graphical user-interface design: Choosing interaction styles and interaction techniques; HCI aspects of interface design; dynamics of color; structuring a view for effective understanding
  • Graphical user-interface programming: Graphical widgets; event management and user interaction; GUI builders and programming environments
  • Computer animation: Key-frame animation; camera animation; scripting system; animation of articulated structures; motion capture; procedural animation; deformation
  • Multimedia techniques: Sound, video, and graphics; design of multimedia systems; tools for multimedia development; virtual reality

Units covered:
AL10 Geometric algorithms 2 hours
HC2 Building a simple graphical user interface 2 core hours
HC3 Human-centered software evaluation 2 hours
HC4 Human-centered software development 2 hours
HC5 Graphical user-interface design 5 hours
HC6 Graphical user-interface programming 5 hours
GV1 Fundamental techniques in graphics 2 core hours
GV2 Graphic systems 1 core hour
GV3 Graphic communication 2 hours
GV4 Geometric modeling 3 hours
GV5 Basic rendering 3 hours
GV8 Computer animation 2 hours
GV10 Virtual reality 2 hours
IM13 Multimedia information and systems 4 hours
SE2 Using APIs 2 core hours (of 5)
Elective topics 1 hour


Computer graphics is extremely exciting to students and can serve as an excellent motivator for students, particularly to the extent that the course structure offers students the opportunity to create graphical systems. Although implementation must be a central component of this course, it is equally important to emphasize the mathematical underpinnings of the area, thereby reinforcing the relationship between theory and practice.

Software tools play a particularly critical role in this course. While it is useful for students to learn basic principles at an abstract level, it is also essential for them to have exposure to sophisticated graphical libraries, which will vastly extend their ability to construct interesting applications. In addition to programmer-oriented graphical APIs, it may make sense to include other packages—multimedia tools, modeling languages, virtual reality—in this course as well.

Students who complete this course should be able to perform the following tasks:

  • Offer a meaningful critique of graphical and multimedia interfaces that incorporates an understanding of the principles of HCI design.
  • Apply the principles that underpin the design of graphics and multimedia systems.
  • Describe the range of tools that can be used to support the development of graphical and multimedia systems.
  • Use existing graphics and multimedia packages to develop appropriate graphical applications.