Computer Graphics:  Programming, Problem Solving, and Visual Communication


Steve Cunningham

California State University Stanislaus

The materials that are linked from this page (whether the page is online or on CD) are designed to support an introductory computer graphics course that focuses on programming interactive computer graphics applications based on scene-graph modeling and a current graphics API.  It emphasizes graphical problem solving and visual communication and is intended to be a sound introduction to computer graphics for computer science students, a course for a computational science program, or a service course for science, mathematics, and engineering students.  A draft manuscript textbook for this course has been developed to support this approach.  The manuscript is continually in development and the latest set of course materials may be found at the author’s online site .  In addition to a graphics programming focus, the manuscript includes materials on visual communication and on science applications that are novel in an introductory course, and I hope you will find these of interest.  The manuscript includes evaluation pages for both instructors and students, and whether you download the manuscript for your own course use or simply for your information, I would greatly appreciate your sending me your comments.   I am glad to acknowledge especially the contributions of Dr. Michael J. Bailey of the San Diego Supercomputer Center and of Ken Brown, my student at CSU Stanislaus, as well as other students at CSU Stanislaus and San Diego State University, to these materials.

The materials found at this site or on this CD are of three kinds.  The first is the manuscript textbook for the course.  The second is some general resources, including texture maps of general interest that can be made available to students for their use, and information on installing and using OpenGL on various systems.   The texture maps are all in the public domain and may be used or shared freely; I suggest that you add some of your own for your class and would be very glad if you would share them with me to be included in these materials.   The third is a set of examples that can give ideas for student projects.  The examples come from my work in developing figures for the manuscript and from the work of my students; again, I would be delighted to include some of your students’ best work here if you will send it to me.

In order to focus on graphical communications, as well as fill a service course role, we suggest that the course include project sequences that support students’ subject matter in various disciplines, especially the sciences. The project examples (generally source code written in C or C++) given here are intended to provide examples of such projects.  These are provided for review or informal use only. I look forward to hearing about ways to improve the materials and hope you will send me any comments you may have on the projects or the course materials in the evaluation pages . In general, I do not give these materials to my students because I want them to develop their own programming styles and to deal with some issues that have been worked out in the manuscript, but they may be useful to you as sources for class discussion.

Course materials available at this site or on this CD:

Course concepts:

The course is built on the OpenGL API and gives students an introduction to the concepts and practice of interactive computer graphics while discussing rendering algorithms and mathematical details only at a conceptual level. This approach is described in several articles (see below) and supports a curriculum in which either the goal is to develop skills to support application areas, or there is a second graphics course that provides the traditional algorithms and techniques for computer science students who want to go on to become graphics professionals. There are also an important role for this course in a Computational Science program. Some papers and presentations (in PDF format) that describe this approach to the course are linked below; note that in some cases the presentations are similar but are focused on different groups.

For the graphics course in Computer Science:

SIGCSE 2002 paper and slides

SIGCSE 2001 Workshop notes and slides

Paper in Computers & Graphics on course concepts

SIGCSE 2000 paper and slides

SIGGRAPH 2000 paper and slides

CCSC-NW 2000 conference slides

For the graphics course in a Computational Science area:
San Diego State University presentation slides

SIAM panel slides

Oregon State University presentation slides

Supercomputing 2002 workshop notes and slides

SIGCSE 2003 paper

An important aspect of the direction taken taken in this course is the use of the scene graph, as defined in Java3D and VRML 2, as the basis for both simple and heirarchical modeling.  This approach is included in the course notes and was written up in a paper that has been published in Computers & Graphics, and you can get a preprint here:
Scene Graph Paper
This work was supported by National Science Foundation grant DUE-9950121. All opinions, findings, conclusions, and recommendations in this work are those of the author and do not necessarily reflect the views of the National Science Foundation.

Last updated November 4, 2002