The Importance and Purpose of Programming in Computer Graphics Ronald J. Glotzbach Purdue University West Lafayette, Indiana ABSTRACT Bringing in engineering design projects can sometimes be hindered by lack of programming expertise, as some projects require a skill set not held by Computer Graphics Technology (CGT) students. This paper discusses the importance and purpose of programming for web development curriculum as it relates to engineering design and multimedia projects in CGT. Correcting this issue can be as simple as requiring the necessary programming within the curriculum. This additional skill set provides faculty with the resources to complete a variety of projects previously not conceivable while extending students the opportunity to work on real-world applications. One such case is presented when a project from a major automobile corporation was successfully completed because our students had the necessary programming skills to manage this endeavor. INTRODUCTION This paper presents a view of the importance and purpose of programming for web development curriculum as it relates to engineering design and multimedia projects in the Department of Computer Graphics Technology (CGT). The web is a graphical communication tool. Web development, then, is programming that graphical communication tool to deliver multimedia to a large audience. This contribution answers three key questions: Why is programming important? Why is programming important in CGT? And, what is web development? It will make apparent the rationale for web development technologies taught in CGT at Purdue University. WHY IS PROGRAMMING IMPORTANT? Programming, regardless of the language or content, requires students to start thinking on another level; requiring more high-level cognitive ability than curricula void of programming endeavors. It is a higher-order thinking skill, requiring students to think more critically of the problem that they are solving and leads to the development of more creative solutions for it (Ryder, n.d.). They begin to think through a project before starting it and realize that they cannot just sit down and “wing it.” In this way, programming often reveals the importance of planning to the student, in a very pragmatic way. It teaches students how to work step by step through a project, from planning to implementation and it exposes them to complex situations, requiring a committed effort, self-regulation and the exercise of precise judgment (Grabe, 2000). In short, students develop algorithms, that is, a logical sequence of steps for solving a problem. These two skills, critical thinking and problem-solving, are vital attributes of higher-order thinking (Grabe, 2000). Fundamental to critical thinking and problem-solving skills is the primary knowledge area deemed logic (Bertoline, 1998). Logical thinking is a part of our everyday lives and yet students are not always exposed to this foundation of critical thinking skills in their curriculum. Programming requires students to start thinking logically, such as “If A and B are both true, then X will happen. But if B and C are both true, then Y will happen and not X.” These types of statements get students to think logically about a program and require advance thought before making a decision. This type of logical behavior, though taught in programming, transfers to other aspects of a student’s career and life. Taking a more a priori look at logic, in its simplest form one could make the premise that the numeral 7 is greater than 4. This is a typical statement of logic one might find in a program. But is 7 really greater than 4? Is it only greater because we have been taught long ago that it comes after 4? That is a little more philosophical, but it still implies that logically, 7 follows 4. Logic is the science of knowing what took place beforehand to make the current situation occur, as stated by Milne, “Logic: the systematic study of what follows from, and of the relations that hold within and between” (n.d., 2). In a similar approach, as noted in Dr. Dobb’s Journal in an article on algorithms, “You could be more convincing by making today’s temperature a (random) function of yesterday’s temperature: If it is 85 degrees today, it is unlikely to be 15 degrees tomorrow. The same is true of English words: If this letter is a Q, then the next letter is quite likely to be a U” (Bentley, 2001, 146). These example algorithms begin to delve deeply into the use of logic in programming as related to everyday existence. It is not likely that there will be any opposition to why programming alone is important, that is, due to the building of cognitive logic structures and an understanding of its application in many areas of life. WHY IS PROGRAMMING IMPORTANT IN COMPUTER GRAPHICS? A main argument for programming in CGT is that it is a higher order thinking skill. Students begin to use their minds to think on another level, using logic and reason. Graphics technologists think visually, using the mind to envision stepping through a program. Being in CGT, this is what could be expected from everyone. Computer graphics programming is an essential part of the CGT curriculum. Students should be able to write programs that produce graphics, not just use software that produces graphics. Not that students should know how to develop entire software packages, but they should at least know how to write a program to produce a JPG, TIF or other graphic file formats. Similarly, they should know what goes into each kind of file format and what distinguishes each, taking language and compression algorithms into account. An excellent example would be to write a program using C++ that reads in digital elevation data for a specified area of the earth, color codes the elevation to create topography and outputs a topographical bitmap of the region. For those curious as to an application for such a bitmap, Boeing used bitmaps for their F-15 distributed mission trainer to track pilots and threats over specified training areas. Although only one example, there are many more that reveal the relevance of such experience. Currently, the most common graphics languages include OpenGL and SVG. Students in computer graphics should at least know what these languages are, what they are used for, and how they could be applied on the job. This also leads into computer gaming, which has become a topic of discussion for the CGT curriculum. Being able to program the visual interaction of varying media and produce students with the capability of working for a gaming company is a potential area of focus for CGT with direct application of programming. Adding components to software packages is another purpose of programming. Suppose there are some specialized tasks that need to be done repetitively, ones that are too cumbersome or monotonously lengthy to replicate by hand. By writing an extension or a plug-in for the software, these actions could be performed with the click of one button, simplifying the task and making it possible to add components, toolbars or plug-ins to Flash, 3DS Max, Photoshop or any other software package to create a specific set of functions needed for a project. This would allow students to have the knowledge of how to customize computer software to fit their needs and the needs of their company. WHAT IS WEB DEVELOPMENT? Web development is coding graphics, textual information and other media for display on the web (“Website development,” 2002). The Web is a graphical communication tool and web development is programming that tool to deliver multimedia to a large audience. It is through this medium that people communicate and collaborate on ideas and information. These visual events form the process of visual communication through graphics technology and design (Skovira, 2000). How many different types of media are used in conjunction with the Web? In the beginning, the Web predominantly consisted of text. It has since blossomed to include graphics, sound, video, and many other types of media that are usually coupled with a back-end database. In the area of animation, the Web offers everything from animated images to digitally edited animations composited specifically for distribution via the Web (Bouwman, n.d.). Virtual environments have also appeared on the Web. Virtual environments are the ultimate in graphics communication with a continuum from zero immersion, such as a virtual walk-through, to full body immersion where all of the human senses are utilized inside of a graphics environment. As an example, Immersion Corporation uses virtual techniques to develop solutions to problems in the medical, automotive, computing and 3D fields (“Immersion,” 2002). In the area of manufacturing graphics, Product Data Management (PDM) systems are used on or in conjunction with the Web. PDM allows users to collaborate using multiple machines to work on a common product via a network. Many times this is an intranet that is not available to the public (Harland, n.d.). One of the many examples in this area is Microsoft Visual SourceSafe. In addition, many management tools are being used on the Web since it is a central point where everybody on a team can collaborate on a project. Microsoft SharePoint Portal Server is just one example of this management technology on the Web. Other collaborative tools are also used on the Web; forums are just one example. As Hayes (2001) states, “Web-based software products that provide virtual meeting spaces and project-management tools for thousands of collaborators” improve teamwork and reduce the ambiguities of administering projects (3). It goes without saying that software alone provides a wide variety of media, whether it is a Microsoft Word document, Adobe PDF, Microsoft PowerPoint presentation, or a QuickTime, RealPlayer or Windows Media Player movie. Database Management Systems like SQL Server, Oracle, and Access are also software packages that are heavily used in web development, although typically in the background where users are unaware of their presence. With the inevitable growth of this graphical communication tool comes the integration of media and technologies. Web-enabling software is the next step to communication and collaboration in this visual medium. Customers are demanding that their applications be web-enabled, which fosters creativity and communication (“Web Enabling,” 2002). This can take on two forms, a) the actual representation of a software package inside of a web browser, much like the use of Adobe Acrobat or Microsoft Word, and b) the use of a software package on the server to perform computations unbeknown to the user. Both of these techniques for web-enabling software are ways of integrating media with the web. This media must all be designed to visually appeal to users, combining programming, logic, graphics theory, human-computer interaction, and many other factors that are taught in the CGT curriculum. Although not an exhaustive list, one must acknowledge that there will always be more because the Web is constantly evolving and redefining itself, becoming a central place of innovation where ideas, data and information can be generated, communicated, collaborated on, and applied. In this regard, Web development and all that it entails is synonymous with interactive multimedia development. What does a computer graphics technologist do in regard to web development? They write the code that produces visual information. They write the code that produces graphics, video, animation, and so on, not to mention code that generates data for other senses such as aural or haptic content. They design the layout for pages and entire sites taking into account human-computer interaction factors that could help or hinder the success of the site. They develop the best possible navigation scheme based on user-interaction and known mannerisms of users. They design the color schemes for the content, again considering HCI factors. They take into account primary design elements, going back to core curriculum; develop storyboards to design content flow. They envision, plan, design, develop, implement, and improve. They combine many technologies and media into one portal that delivers it all. Computer graphics technologists design the Web by producing the code that generates the content that is used to visually communicate and collaborate on the ideas and information of the World. CONCLUSIONS Bringing in engineering design projects can sometimes be hindered by lack of programming expertise, as some projects require a skill set not held by CGT students. Correcting this issue can be as simple as requiring the necessary programming within the curriculum. This additional skill set provides faculty with the resources to complete a variety of projects previously not conceivable while extending students the opportunity to work on real-world applications. REFERENCES Bentley, J. (2001, April). Suffix Arrays. Dr. Dobb’s Journal, 26(4), 146. Bertoline, G. R. (1998). Visual science: an emerging discipline. Journal for Geometry and Graphics, 2, 181-187. Bouwman, M. (n.d.). Animation on the web. Retrieved October 9, 2002, from http://www.swcp.com/animate/bowman.htm Website development. (2002). Retrieved October 9, 2002, from EasyWhiz.com web site: http://www.easywhiz.freeuk.com/webdev.htm Grabe, M. & Grabe, C. (2000). Integrating technology for meaningful learning (3rd ed.). New York: Houghton Mifflin Company. Harland, P. (n.d.). PDM and the web – the next generation. Retrieved October 9, 2002, from http://www.datamation.co.uk/samples/edn/vol5/e508sp2.html Hayes, H.B. (2001, March 5). All together now: New tools promise true web-based collaboration on projects. Retrieved October 9, 2002, from http://www.fcw.com/fcw/articles/2001/0305/tec-collab-03-05-01.asp Immersion Corporation. (2002). Retrieved October 10, 2002, from http://www.immersion.com/ Milne, P. (n.d.). What is logic and why do philosophers study it? Retrieved September 12, 2002, from http://www.arts.ed.ac.uk/philosophy/study_html/vade_mecum/sections/ section1/whylogic.htm Ryder, B. (n.d.). Using computer programming to promote learning by computers. Retrieved October 10, 2002, from http://www.knowalot.com/nova/computerprogramming.htm Skovira, R.J. (2000). What is a well designed web site? Paper presented at the INFOS 2000 Symposium. Retrieved October 9, 2002, from http://www.aib.sk/infos/infos2000/14.htm Web enabling applications. (2002, May 23). Retrieved October 10, 2002, from http://www.scsc.org/sig_events/ebuisness/ebus_may2302.html Contact the author at: 401 N. Grant St. West Lafayette, IN 47907 765.496.2953