Academia.eduAcademia.edu

Computer Graphics and Image Processing as an Introductory Course

Citeseer

Computer Graphics is an important discipline and is present in al-most every undergraduate Computer Science curriculum. To create graphical content, both 2D Computer Graphics and Image Process-ing are essential. 2D Computer Graphics and Image Processing also ...

Computer Graphics and Image Processing as an Introductory Course Eric Paquette∗ LESIA, Department of Electrical Engineering, ETS Montreal, Canada Abstract Computer Graphics is an important discipline and is present in almost every undergraduate Computer Science curriculum. To create graphical content, both 2D Computer Graphics and Image Processing are essential. 2D Computer Graphics and Image Processing also have strong theoretical relationships. Based on a survey of Computer Graphics courses in undergraduate Computer Science curricula, 84 percent of the introductory Computer Graphics courses are typical 3D courses that only briefl present 2D Computer Graphics and Image Processing. This paper proposes a course on these two disciplines. Such a course is of practical interest for content creation, for the acquisition of images, and for the reproduction of content on different media. Apart from describing the course, this paper identifie theoretical and practical relationships between Computer Graphics and Image Processing. It identifie benefit and drawbacks of adding such a course in an undergraduate curriculum and relates this course to topics that could be part of advanced courses. It finall covers practical concerns such as a developed software framework for assignments and how to cover the main aspects in specifi assignment topics. 1 Introduction Computer Graphics (CG) is a vast, important, and popular discipline. From its beginning around 19701 , CG is now a mature discipline built on a strong mathematical basis and with applications in an ever increasing number of disciplines. This is reflecte in the undergraduate curricula of various other disciplines, such as physics, engineering and architecture, which include an optional introductory CG course [Cunningham 1999a] in some of their curricula. In Computer Science, CG occupies an important place for a long time [Ohlson 1986] and now it is well in place with over 90 percent2 of the undergraduate curricula having an optional CG course. In some specialized Computer Science curricula, a CG course is even mandatory. CG is interesting because its results are visual and often impressive. It is thus a discipline that attracts many students, but it is also useful for students as it provides them with suitable knowledge of the algorithms they will use to create graphical representations of all sorts of data. The 2D aspects of CG such as vector primitives, 2D curves, halftoning, 2D transformations, even though they are sometimes pointed out as outdated ways to introduce CG [Cunningham 1999b], are extremely important in creating 2D content. Acquisition and reproduction of this content also requires knowledge of 2D CG and of the Image Processing (IP) discipline. These aspects are of major importance since most of the content created, acquired, reproduced, and visualized is 2D. This is refl cted in 2D tools integrated directly in popular software3 such as Word R and PowerPoint R . Other popular software such as Photoshop R and ∗ e-mail: [email protected] 1 ACM SIGGRAPH was created at this time which indicates that CG was identifie as a scientifi discipline. 2 Statistics presented in this paper are based on a survey of Computer Science curricula of many universities around the world. It is described in Section 2. 3 Word and PowerPoint are trademarks of Microsoft Corporation. PhotoShop and Illustrator are trademarks of Adobe Systems Incorporated. Illustrator R are dedicated to working on such 2D content. Yet, in typical CG courses, 2D CG and IP are only briefl presented since the focus is on 3D. This paper proposes a course on 2D CG and IP as an alternative way to introduce CG. These two disciplines have strong theoretical relationships which can be easily exploited in a single course. Such a course is also of practical interest for many types of content creation, for the acquisition of images, and for the reproduction of content on different media. In this sense, our main contributions are: • The description of a course on 2D CG and IP. • The identificatio of the relationships between CG and IP. • The identificatio of topics that are important to consider to create additional advanced courses based on this course. • The identificatio of the benefit and the drawbacks of the proposed course. • An open source framework to create assignments in 2D CG and IP and example topics for assignments. • A survey on CG courses 2 How Computer Graphics is Presented As a basis to the work presented in this paper, undergraduate Computer Science curricula were looked at with a focus on courses involving CG. With respect to other works at surveying CG courses [Wolfe 1999a; Wolfe 1999b], this survey does not go into details of all the topics presented, but focusses on CG courses at a higher level and the context in which they are presented: traditional 3D CG introduction, advanced courses, courses that mix CG with IP or Human-Computer Interaction (HCI), and stand alone courses on IP and HCI. The curricula that were analysed were related to Computer Science and include curricula such as standard Computer Science, Software Engineering, Computer Engineering, and Information Technology. The selection of universities was done in two ways: random selection and selection based on the presence of at least one CG researcher. This reflect two aspects of how CG is presented: how is it presented when a specialist it present and how is it presented in most universities (wether a CG researcher is present or not). This collection4 is a work in progress. The long-term plan is to have a collection of typical introductory and advanced courses that can be investigated when a course is to be created or evolved to a different focus. This set of CG courses in Computer Science curricula is composed of data from 5 countries, 30 universities, 46 undergraduate Computer Science curricula, 74 CG courses, 20 IP courses, 27 HCI courses. CG is typically presented in an introductory course that focusses on 3D [Wolfe 1999a; Hitchner and Sowizral 1999; Hitchner et al. 1999]. Such an introductory course on 3D also has to deal with IP since the main goal is image synthesis. The introductory course thus has to deal with typical IP topics such as pixels, aliasing, fil tering, image composition, and image enhancement. Creating and interacting with 3D CG is a difficul task and an introductory course also has to deal with typical Human-Computer Interaction (HCI) 4 The current set of information can be accessed at http://profs.logti.etsmtl.ca/epaquette/cgcourses/ topics such as rapid feedback, human perception of 3D space, complex tasks of moving in 3D space and creating 3D objects by looking at a 2D computer screen. Despite the link between CG, IP, and HCI, 84 percent of the introductory courses are typical 3D CG courses that devote most of their time to 3D topics. In the context of an undergraduate Computer Science curriculum, various authors agree that there are many ways in which CG can be introduced [Brown et al. 1988; Larrondo-Petrie et al. 1994; Grissom et al. 1995; Cunningham 2002]. There are so many topics to cover in Computer Science (programming, software engineering, databases, networking, computer architecture, artifi ial intelligence, etc.) that it may not be appropriate to have courses on CG, courses on HCI, and additional courses on IP. It would thus be of great interest to cover some parts of CG with another discipline. While they are studying and in their future career, students in a Computer Science curriculum will have to create content in different forms such as technical reports and user interfaces. For such applications, 2D vector graphics and images have to be handled appropriately to create quality content. Acquisition of images from different sources and reproduction on different media impose constraints that are not trivial to understand for someone with no background in CG and IP. In this paper, it is proposed that combining the 2D aspects of CG with IP in a single course has many benefits The details of a course on 2D CG and IP as well as practical and theoretical reasons in favor of such a course will be presented in the following sections. 3 Computer Graphics and Image Processing Course In this section, the 2D CG and IP course, from now on refered to as CoGIP 5 , is detailed and reasons why such a course is interesting are presented. At the present time, only 3 percent of the courses on CG introduce it together with IP. This paper argues that this percentage should significantl increase. 3.1 Course Description The CoGIP course presents particular topics of traditional CG and IP courses. Obviously it cannot cover all the material of the traditional courses, but it presents topics that form a coherent view of the two disciplines. Here is a brief list summarizing the topics it covers: perception human visual system, sensation of color color models, transformation (brightness, contrast, gamma, histogram equalization), composition (alpha blending, mathematical and logical operations) sampling pixels, quantization, aliasing, and antialiasing acquisition and reproduction digital camera, scanning, printing, displaying, halftoning vector primitives ellipses, rectangles, polylines, curves, etc. 3.2 Justifications for CoGIP The CoGIP course has interests for both students and teachers. In this section, practical reasons in favor of a CoGIP course are presented while in section 4 theoretical relationships between CG and IP are introduced. 3.2.1 Advanced Content Creation Content creation now heavily relies on the use of computers. The visual representation of information in technical talks and reports, data visualization, user interface, or promotional material uses text but also heavily relies on 2D graphics and images. Common tools such as Photoshop R and Illustrator R are increasingly powerful and mastering these tools goes through understanding the theory behind the implemented algorithm to give powerful insight into the appropriate ways to use the tools and adjust the many parameters. Creating appropriate input for these tools and generating appropriate quality output is also a challenge fille with the theory of vector and raster graphics. Images can be captured with digital cameras, by scanning from a printed copy, by scanning standard camera film etc. Appropriate knowledge of the limitations of the different types of acquisition is essential to creating quality content. The CoGIP course topics involved in acquisition are perception, color, sampling, and acquisition. Given quality content, creating a reproduction on different media such as prints from inkjet or laser printers, computer screen, lithography, etc. is still a challenge. For someone who does not understand how our eyes perceive the fina images, it is especially difficul so select an appropriate solution since they involve different costs and different output quality. The CoGIP course topics involved in reproduction are perception, color, sampling, reproduction, and image filtering 3.2.2 Computer Graphics Applications Creation of 2D content is the general application of CG, but specifi types of 2D content creation and manipulation are worth mentioning. Today, almost every company has its Web site. The 2D content of such pages poses both practical and theoretical constraints. Presenting data to the end user is important in almost any software. This data will almost inevitably be presented on a 2D display. Thus knowledge of how to create appropriate 2D images and vector graphics is an important asset. In computer games, most of the user interface and special effects are made in 2D. Fast computation, transformation, and composition of images is crucial in such applications. In this context, basic knowledge of the CoGIP course topics is essential to every programmer. Someone working more towards the artistic side of content creation for games and even any 3D content would also make good use of the CoGIP course theory. rasterization mid point, scan conversion, painter’s algorithm filling boundary and floo fill image filtering filterin in the spatial domain (blur, sharpen, median filte , etc.) and in the frequency domain transformations affin transformations, homogenous coordinates, composition 5 The description of the CoGIP course was submitted for publication to the SIGGRAPH 2004 Educational Program. The paper presented here puts this course in a broader context. 3.2.3 Knowledge requirements For students, CoGIP disciplines fi well in terms of the applications they fulfill For the teacher, they provide an interesting platform on which to build advanced courses, but they also are in harmony in terms of the mathematical knowledge they require. Both require students to have basic skills in calculus, linear algebra and trigonometry. This is important since bringing the two disciplines together does not put additional constraints on the target audience. 4 Relationships Between Computer Graphics and Image Processing This section presents the theoretical relationships between CG and IP. These relationships strengthen the logic of combining these two disciplines in a single course instead of two separate courses. The CoGIP course lends itself well to also having an advanced course on 3D CG and an advanced course on IP and vision. Analysis of the relationships between CG and IP helps to clarify which topics could be presented in the CoGIP course and which could be part of advanced courses. 4.1 Shared / Related warping Image Processing shape from shading stereo contrast image wavelets image compression projection texture 3D reconstruction analysis Table 2: Relationships between CG and IP topics that are advanced topics in one of the two disciplines. The advanced topics are highlighted in italics. Shared Topics Table 1 presents the basic relationships between CG and IP. Since Computer Graphics synthesis rendering antialiasing supersampling texture mapping animation Shared / Related image volume perception color sampling texture filterin forward-reverse mapping morphing Image Processing processing filtering thresholding aliasing filterin image 2D transformation image Table 1: Relationships between CG and IP and topics related or shared between both disciplines. they are so closely related, the presented classificatio is a helpful tool for comparison, but not a strict classificatio . Images are the predominant relationship between CG and IP. Whereas CG can be viewed as a process that happens while (or before) the images are created, IP happens after an image is available to process. Volumes can be view as images in 3D and are processed by IP algorithms to enhance or extract information, while CG renders the volumes to 2D images. Perception, color and sampling are vast topics shared by both CG and IP. How the human eye perceives colors, how colors are represented in digital forms, and how real world and vector graphics are sampled in order to be displayed on a computer screen are few examples of aspects of these topics that are common to CG and IP. Closely related to sampling come aliasing, antialiasing, filte ing, and supersampling. As CG creates images it deals in a very different way than IP with the common problem of aliasing since the filterin can be computed at a level that is different than that of the fina image pixels. Some approaches are common to both CG and IP. The forward and reverse mapping used in texture mapping is equivalent to the forward and reverse mapping from an original image to its copy after a 2D affin transformation is applied. Still with respect to textures, filterin is an essential IP technique to solve a CG problem. Morphing is another approach used in CG to morph between animation poses and used in IP for image morphing. 4.2 Computer Graphics shading image synthesis HDRI mapping IBR multiresolution surfaces synthesis Image synthesis is the major topic of CG. Among other things, it computes the shading of an object and projects it on an image plane. The shading computation of how the surfaces reflec light is quite basic in CG, but it relates to the reconstruction of geometry from shading in the IP discipline. Along the same lines, projection is basic in CG and is related to the more advanced IP topic of stereo vision. In IP, contrast enhancement, image warping and image compression are basic topics. When it comes to CG, High Dynamic Range Imagery (HDRI) is an advanced contrast enhancement technique similar to standard IP techniques such as gamma correction. Image Based Rendering (IBR) warping of depth images is an advanced CG technique related to the basic IP image warping technique. Another advanced tool in CG is the use of wavelets applied to problems such as multiresolution surface editing. Wavelets, on the other hand, are a basic image compression technique in IP. Other topics, for example texture, are advanced in both CG and IP. Texture analysis is an advanced technique in IP and texture synthesis is an advanced technique in CG. While texture represents surface features, the 3D objects are also of interest to both CG and IP in 3D reconstruction. In both fields advanced 3D reconstruction techniques exist even though they often have different fina goals: realistic rendering of the reconstructed object in CG and object recognition in IP 4.3 Topics of Computer Graphics Appropriate for a 2D Course In every introductory CG course, topics such as curves and transformations are firs introduced in 2D and then extended to 3D. While these 2D topics may have little to do with IP, they fi well with the 2D context of images. Furthermore, 2D objects such as curves are often converted to pixels and images before they are displayed. Images can also be manipulated by 2D transformations, so this topic is also meaningful in the context of IP. Table 3 presents CG topics that are appropriate for a CoGIP course and their extension to 3D graphics. It shows that bringing the same topic from 2D to 3D is not a trivial extension. In the 3D world, curves can become surfaces, transformations can become projections, etc. Presenting these topics in a 2D course conveys important knowledge while leaving many new challenges to the students when the topics are presented in the 3D space. This table is thus helpful in preparing an advanced course on 3D that would follow the CoGIP course. Relationships Between Topics The previous section presented basic topics and their relationships in both disciplines. This section presents more advanced topics that have links to the other discipline which is useful for the definitio of advanced courses based on an introductory CoGIP course. Table 2 presents some of these relationships. 5 Discussion The previous sections presented many reasons why a CoGIP course is an interesting approach. In this section we focus on the benefit and drawbacks of this type of course. Computer Graphics 3D & surfaces 3D & projection 3D, more degrees of freedom polygon, sphere, torus, etc. scan-line wireframe / smooth shaded surfaces Shared / Related curves transformations animation primitives vector to raster Image Processing 2D 2D 2D 2D vector primitives mid point primitives contour / interior Table 3: 2D CG topics that are moved from the traditional introductory CG course to the CoGIP course. 5.1 Benefits for Students The CoGIP course is interesting for students, since it presents the theory that governs how they perceive the world and how digital images are approximate views or the real world. It also presents how images and 2D graphics can be created, modified combined, and reproduced to deliver quality results that correspond to different constraints. 5.2 Benefits for Teachers For teachers, the theoretical relationships between the topics require quite similar background knowledge from the students. The close relationship also allows the two topics to be easy to present together. Furthermore, it gives more time to present topics which, in an introductory course to CG, are typically presented in a rush, since introductory courses tend to focus more and more on the 3D techniques [Bouvier 2001]. Such topics include the difference between vector and raster graphics and how vector graphics are rendered to raster representation, halftoning techniques, color models, and fill ing algorithms. These topics, even though they are important to CG, are not essential to cover in depth in a 3D course and are often barely touched. The CoGIP course is also a good starting point for advanced courses in CG and IP. In an advanced course on IP, sophisticated IP topics could be introduced and the course could include vision and object recognition topics. A natural advanced course would be to pursue in the 3D space and rendering from 3D to 2D. Other advanced topics such as non-photorealistic rendering, animation and advanced rendering techniques would also be appropriate choices. 5.3 Challenges and Drawbacks A firs practical challenge of such a proposed course is that there is no appropriate book that covers both disciplines. The book by Watt and Policarpo [Watt and Policarpo 1998] covers CG, IP, and vision, but does not present these topics in sufficien detail. In CG books, little is presented on low pass filterin and all other spatial filter are ignored. The presentation of the frequency domain, of image transformations such as histogram equalization and median filterin are also inexistent or too brief. In IP books, halftoning methods, vector primitives, and curves, conversion from vector graphics to raster graphics, and fillin are not presented. Students could obviously buy two books, one for each discipline, but this would become prohibitively expensive. The GTI410 course notes6 rely on chapters extracted from six books [Watt and Policarpo 1998; Hill 2001; Efford 2000; Gonzalez and Woods 2002; Foley et al. 1990; Hearn and Baker 2004] that cover the required topics as detailed in Table 4. This is an inexpensive solution, but the students have to adapt to the fact that the text is not completely cohesive. The topics covered in the course, even though there is no doubt they are related, can seem too independent. Raster and vector 6 The notes respect copyright laws which our university has to follow and which is similar to the “Fair Use” of the U.S. copyright law. Book [Watt and Policarpo 1998] [Hill 2001] [Efford 2000] [Gonzalez and Woods 2002] [Foley et al. 1990] [Hearn and Baker 2004] Topic perception, color color, sampling, vector primitives, reproduction, rasterization, fillin image filterin (spatial domain) image filterin (frequency domain) curves transformations Table 4: Books used to build the CoGIP course notes. graphics, and 2D CG and IP may seem unrelated opposites. This type of dichotomy between related topics is inevitable and is present in traditional introductions to CG. If the teachers are aware of this difficult , they can point out and explain the links between these topics. An approach to bring the topics closer together uses assignment topics balanced between 2D CG and IP, as well as vector and raster graphics. This greatly reinforces the students perception of the link between these topics. Table 5 presents the assignment topics. Topic Color models Filling Filtering Curves Transformations CG/IP both CG IP CG CG and some IP Vector/Raster both raster raster vector vector and some raster Table 5: Assignments of the GTI410 CoGIP course and how they relate to 2D CG and IP as well as vector and raster graphics. To further help the students in understanding the theory while they are doing the assignments, a framework [J2DCG 2003] that allows 2D CG and IP to be coded in a single application was developed. The framework does not present a working system, such as an image editing package, but gives a context in which algorithms are implemented with little programming effort and can be controlled with a readily working interface as can be seen in Figure 1. When object-oriented design can become a diffi ulty, example concrete classes are included in the system to facilitate the implementation of the classes relevant to the assignment. The framework design is thus focussed on ease of modification not efficien y or rigorous object-oriented design. To facilitate its use by other teachers, this framework is open source on SourceForge.net7 and developed in Java. In the context of having a CoGIP course as an introductory course followed by a 3D CG course, the most problematic aspect is that the CoGIP course is a prerequisite for the 3D CG course. Thus students cannot directly follow the 3D course without going 7 http://sourceforge.net/ The Software Engineering curriculum presents many theoretical aspects of software processes and methodologies. In this curriculum, the LOG750 introductory CG course is a standard 3D CG course. The course is an interesting and exciting application of the various skills learned in the curriculum such as HCI, object-oriented design, data structures, testing, and mathematics. 6 Figure 1: The user interface of the j2dcg framework developed for the CoGIP course. through IP. Creating 2D content is so important and relies so heavily on 2D CG and IP that, in the context of many curricula, it should outbalance this problem. Another potential problem is that some topics, such as those presented in Section 4.3, are split between two courses. Even though the topics were already presented in the 2D context, the teacher of the 3D course will likely have to refresh the students memory before extending the 2D concepts to 3D. However, this problem is common in any course that further develops material learned in a prerequisite course. 5.4 Computer Graphics in Different Curricula The CoGIP course presented here is almost identical to the GTI410 course of the Information Technology engineering curriculum at the ETS8 Engineering School. It presents a practical academic example where a CoGIP course is an important tool for pedagogy. The GTI Information Technology engineering students gain abilities in the f ve disciplines of engineering, computer science, CG, networking and business. In this context, the GTI410 CoGIP course fill the most important part of the multimedia content creation knowledge required by the CG, networking and business disciplines. Information Technology curricula are becoming more common: 9 percent of the curricula related to Computer Science are on Information Technology. A CoGIP course brings a definit ve advantage to such curricula. As it was mentioned, CoGIP is one approach to introduce CG, but other have their places depending on the context of the particular curricula. ETS is a nice environment to study different ways CG can be introduced, since three offered curricula have different introductory courses. In the Electrical Engineering curriculum, the ELE615 introductory CG course is a mixture of CG and HCI. The future electrical engineers need the basic knowledge of interface design and the CG part serves different needs such as a challenging application of computer programming, application of real-time system, and an introduction to visualisation aspects. 8 http://www.etsmtl.ca/ Conclusion This paper stressed the fact that, to be able to create quality 2D content, mastering the 2D CG and IP disciplines is important. From a survey of CG courses in undergraduate Computer Science curricula, it was noted that there are courses on CG in almost every undergraduate Computer Science curriculum, but the typical introductory CG course focusses on the 3D aspects. This does not provide adequate knowledge of the algorithms used to create graphical representations of all sorts of data. The proposed solution is to combine 2D CG with IP in the here proposed CoGIP course. This course is not intended to replace the typical introductory course that focusses on 3D, but to provide an alternative that should gain more attention since computer scientists often have to deal with 2D content. Apart from describing the CoGIP course, this paper identifie the theoretical and practical relationships between CG and IP. It identifie the benefit and drawbacks of adding such a course in an undergraduate curriculum and specificall relates this introductory course to topics that could be part of advanced courses. It also presents a developed software framework for assignments and specifi assignment topics to cover as much of the main aspects as possible. 6.1 Future Work As was mentioned, a long-term goal is to have a collection of typical introductory and advanced courses that can be investigated when a course is to be created or evolved to a different focus. The CoGIP course is quite well define and analysed, but it would be interesting to look at other disciplines that could be mixed with CG. Disciplines such as HCI, CAGD, and art share many topics with CG. It would be interesting to study if the relationships between CG and such disciplines is as tight as the relationship between CG and IP. Another subject that would be important to analyse with respect to the collection of typical introductory courses, is the relation between the types of curricula and introductory courses. The CoGIP course is obviously not the only appropriate way to teach CG. Another avenue which may be interesting to look into, is to have a course on 2D CG, IP, and HCI. Typical HCI courses present the basics of drawing windows and widgets. The course could go a little bit further in 2D CG and IP to provide basic knowledge of 2D content creation. An advanced course on 3D CG following such a course could heavily rely on the fact that students know enough of 2D CG, IP, and HCI to concentrate on advanced 3D techniques and interactions. References B OUVIER , D. 2001. From pixels to scene graphs: The evolution of computer graphics courses. In Proceedings of the Educator Program, ACM SIGGRAPH 2001. B ROWN , J., B URTON , R., C UNNINGHAM , S., AND O HLSON , M. 1988. Varieties of computer graphics courses in computer science. In Proceedings of the nineteenth SIGCSE technical symposium on Computer science education, 313. C UNNINGHAM , S. 1999. Re-inventing the introductory computer graphics course: Providing tools for a wider audience. In Graphics and Visualization Education Workshop (GVE ’99) Proceedings, J. C. Teixeira, W. Hansmann, and M. McGrath, Eds., 45– 50. C UNNINGHAM , S., 1999. Report of the 1999 eurographics/siggraph workshop on graphics and visualization education. Graphics and Visualization Education Workshop (GVE ’99) Proceedings. C UNNINGHAM , S., 2002. Recommendations of the computer science curriculum group of interest. Eurographics/SIGGRAPH Workshop on Computer Graphics Education 02 (CGE 02). E FFORD , N. 2000. Digital Image Processing: A Practical Introduction Using Java. Addison-Wesley. F OLEY, J., VAN DAM , A., F EINER , S., AND H UGHES , J. 1990. Computer Graphics Principles and Practice, 2nd ed. AddisonWesley. G ONZALEZ , R., AND W OODS , R. 2002. Digital Image Processing, 2nd ed. Prentice Hall. G RISSOM , S., B RESENHAM , J., K UBITZ , B., OWEN , G. S., AND S CHWEITZER , D. 1995. Approaches to teaching computer graphics. In Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, 382–383. H EARN , D., AND BAKER , M. 2004. Computer Graphics with OpenGL, 3rd ed. Prentice Hall. H ILL , F. 2001. Computer Graphics Using OpenGL, 2nd ed. Pearson Education. H ITCHNER , L. E., AND S OWIZRAL , H. A. 1999. Adapting computer graphics curricula to changes in graphics. In Graphics and Visualization Education Workshop (GVE ’99) Proceedings, J. C. Teixeira, W. Hansmann, and M. McGrath, Eds., 23–30. H ITCHNER , L., C UNNINGHAM , S., G RISSOM , S., AND W OLFE , R. 1999. Computer graphics: The introductory course grows up. In Proceedings of the thirtieth SIGCSE technical symposium on Computer science education, 341–342. J2DCG, 2003. Java 2d computer graphics and imaging framework. http://j2dcg.sourceforge.net/. L ARRONDO -P ETRIE , M. M., B RESENHAM , J., L AXER , C., L ANSDOWN , J., AND OWEN , G. S. 1994. Approaches to teaching introductory computer graphics. In Proceedings of the 21st annual conference on Computer graphics and interactive techniques, ACM Press, 479–480. O HLSON , M. 1986. The role and position of graphics in computer science education. In Proceedings of the seventeenth SIGCSE technical symposium on Computer science education, 232–237. WATT, A., AND P OLICARPO , F. 1998. The Computer Image. Addison-Wesley. W OLFE , R. 1999. Brining the introductory computer graphics course into the 21st century. In Graphics and Visualization Education Workshop (GVE ’99) Proceedings, J. C. Teixeira, W. Hansmann, and M. McGrath, Eds., 3–8. W OLFE , R. 1999. A syllabus survey: Examining the state of current practice in introductory computer graphics courses. Computer Graphics 33, 1, 32–33.