Nowadays, students coming into a computer graphics course have seen movies that have fantastic graphics effects (e.g., Toy Story, A Bug's Life and the Star War series). These students have also acquired a certain level of graphics knowledge by playing games and reading popular magazines. Their expectations are certainly high for their first graphics course. Moreover, many deep and powerful theories were developed during the past decade. Either because these topics are too new or because they are too difficult to teach, they are frequently only sketched or even skipped in favor of a "programming" approach. Hence, what a student learns in an introductory course might only be some programming skills using a graphics API, usually OpenGL, along with some fundamental computer graphics knowledge. Students are only exposed a little to modern developments which are frequently used by the graphics industry for creating fantastic special effects or realistic images.At Michigan Technological University, we have three computer graphics related courses: an introduction to graphics course, a computing with geometry course for junior and senior students and an advanced graphics course for graduate students. We also have graduate courses on geometric modeling and visualization. The minimum prerequisite of the introductory graphics course is only a sophomore software development course which is usually taken after a data structure course. This introductory course covers essentially all traditional topics with the help of publicly available tools (e.g., GLUT and GLUI) and other tools developed by the instructor of this course. We believe that our current approach is a successful combination of theory and the current popular programming approach using tools. However, we still feel that we need to do more to introduce students to modern theories and developments. While many educators have already observed the need of a new graphics course and proposed some approaches [1], our approach is more ambitious and non-traditional.We believe that graphics consists of four major components: rendering, modeling, animation and postprocessing. The rendering part has become the major topic in typical graphics textbooks and the main thrust of a programming approach. There is nothing wrong with a focus on rendering methods. The problem is that the programming approach cannot cover global illumination models (e.g., ray tracing and radiosity) and volume rendering, because most popular APIs only implement local illumination models. Every scene contains some objects and object building requires the knowledge of modeling. However, building a good and realistic model is not part of any API. Animation is the skill for creating animation sequences and simulating physical events. Finally, postprocessing makes created scenes satisfy additional requirements and requires a special set of 2D operations. Obvious topics should include, but not be limited to, filters, morphing, dithering and other current techniques. Since the programming approach usually cannot go this far to cover all four components, additional course materials and working environments are required. This has become the main thrust of our project.To address this need, our goal is to design a comprehensive introductory computer graphics course that covers all four major components to some depth with a breath-first and learning-by-doing approach. To support this goal, a pedagogical environment is required for students to experiment and visualize important concepts, and to perform a semester-long project of implementing various components. In the following, we discuss a number of problems that prompted us to initiate this project, present a description of our proposed course and its software tools, address the software modules that are currently under development and, finally, make our conclusions.