using computer graphics to foster ... - ACM Digital Library

4 downloads 42934 Views 85KB Size Report
without fee all or part of this material is granted provided that the copies are not made .... capstone course featuring Computer Graphics that addresses all three ...
USING COMPUTER GRAPHICS TO FOSTER INTERDISCIPLINARY COLLABORATION IN CAPSTONE COURSES* John McDonald and Rosalee Wolfe DePaul University, Chicago, IL 60604 {jmcdonald,rwolfe}@depaul.edu

ABSTRACT Working effectively as a member of an interdisciplinary team is a skill highly valued by today’s employers, but there are many challenges in providing this learning opportunity for students, including the equitable balance of responsibility among team members, an appropriate software environment and cost. A capstone course using Computer Graphics can surmount these challenges and provide valuable interdisciplinary team experience for students. BACKGROUND The capstone course is an intrinsic part of undergraduate computer science education whose goal is to provide students with an opportunity to “apply their skills and knowledge to solve a challenging problem” [2]. A capstone course [3] has traditionally benefited students by providing an opportunity to gain experience in challenges that they will find on the job. See Table 1. Employers have consistently found these “soft” skills to be desirable [7], but the rapidly changing needs in industry have produced demands for additional soft and not-so-soft skills. New graduates find themselves working in collaborative environments. Alumni tell us that they do not work on isolated, single-programmer coding projects, and they do not develop software from scratch [1]. Rather they develop solutions as part of a larger framework of existing packages and APIs. The scale of modern software projects requires an expanded skill set that helps students fit into a collaborative/interdisciplinary environment, as listed in Table 2.

___________________________________________ *

Copyright © 2008 by the Consortium for Computing Sciences in Colleges. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CCSC copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a fee and/or specific permission.

83

JCSC 24, 1 (October 2008) The first two in this new list of desirable skills fall into the “not-so-soft” category. Most industry projects do not rely on a single monolithic software system to develop a product or solution, but use a collection of multiple software packages. To work effectively in such an environment, students need to be adept at specifying, developing and managing data. The second two items in the expanded skill set are justifiably called “soft skills”, and have arisen as the software industry continues to evolve [5]. Increasingly, software developers are working closely with professionals in fields different from their own, such as accounting, business management, medicine, science and even art and music. 1. Participating as a member of a team to produce a deliverable 2. Working on a project whose scope is larger than homework assignments or a final project 3. Time management: proportioning time and effort appropriately 4. Coping with under-defined or illdefined specifications Table 1: Traditional benefits of a capstone course

1. Working with a collection of existing software, including code maintenance and data integrity between modules. 2. Developing software modules or plugins, to work in a software framework. 3. Interdisciplinary communication – interacting effectively with people having skill sets different from their own 4. Understanding/satisfying client needs Table 2: Expanded set of skills required for collaborative environments

For these reasons, all students, even the most technically oriented ones, benefit from working in interdisciplinary groups. Interdisciplinary capstone courses have many benefits, including developing more effective communication skills, negotiating and working with professionals in fields that rely on computer science, learning to trust the strengths of other project participants, and the ability to offer their own strengths without provoking contention. THE CHALLENGES OF INTERDISCIPLINARY ENVIRONMENTS Providing an interdisciplinary environment imposes three additional challenges on a course that is already time and resource intensive to teach: equity, software framework, and cost. The challenge of making the experience truly equitable to all participating students means shared work, shared leadership, and shared evaluation i.e., being judged from the perspective of each discipline. This requires finding a suitable project that equitably utilizes and challenges the skills of all the participants involved [11]. This also includes equitably organizing, monitoring, mentoring and evaluation of team members [15, 3, 8]. The second challenge is in setting up a rich, but still manageable, environment that requires students to build on an existing framework of software. Finally, and of critical importance, there is the challenge of cost. The resources necessary to support such an interdisciplinary endeavor can be prohibitive, especially for colleges with limited resources.

84

CCSC: Midwestern Conference Several previous efforts involved capstone projects that have the potential to draw from several disciplines [9, 10, 14], but ultimately team members were only from a single discipline and/or did not have the advantage of working with an existing framework or pipeline. Several authors describe capstone experiences where both the work and evaluation were distributed equitably over multiple disciplines [6, 11, 17], and provided an existing framework to build upon, but required additional specialty resources. In fact one program [13] had the advantage of an entire building dedicated to the purpose of supporting capstone courses. This would be out of the realm of possibility for most schools. This paper describes the organization, content and evaluation procedures for a capstone course featuring Computer Graphics that addresses all three challenges. It provides students with the opportunity to receive not only the traditional benefits of a capstone course but to gain the expanded skill set desired in today’s industry. This approach to the capstone experience 1) fosters equitable interdisciplinary interaction, reliance and respect, 2) creates a rich, large, yet manageable development environment for the students and 3) provides an approach to implementing the course with little or no outlay for project resources. ADVANTAGES OF COMPUTER GRAPHICS IN A CAPSTONE COURSE Computer Graphics has been used as an effective motivational tool in introductory computer programming courses, and as a powerful tool to explain and visualize algorithms and techniques throughout the computer science curriculum [4,12]. What has not been so widely recognized is that Computer Graphics can also be a powerful motivator in a capstone course. One of Computer Graphics’ strengths lies in its appeal to students interested in everything from the entertainment industry, to science, engineering, manufacturing and education. Computer Graphics provides a wealth of large, interesting problems that require CS majors to grapple with all aspects of the complete software cycle, from design and implementation to testing, documentation and maintenance. These problems are large enough in scope that students need to work as a team to address them, and they will need an entire term to complete them. While completing a Computer Graphics problem, CS students have the opportunity to apply the theory and skills that they learned in previous courses, ranging from the estimation of speed and memory requirements to the design and implementation of data representations. They will also need to decide how to allot their time to meet their milestones and produce their deliverables. The visual aspect of Computer Graphics imagery makes any project in this area inherently underdefined, which gives many students their first opportunity in coping with fuzzy specifications. Thus, Computer Graphics problems provide all of the traditional benefits required of a capstone course. Using Computer Graphics in a capstone course provides an opportunity to gain the expanded skill set in Table 2, including the development of modules for existing software, managing systems of software, interdisciplinary communication and working with clients. Producing imagery requires that students leverage existing software packages because it is simply not feasible to write such software from scratch in the confines of a single course. Instead, students are exposed to utilizing software packages through scripting languages and software development kits (SDK’s). The range of tasks 85

JCSC 24, 1 (October 2008) in producing realistic Computer Graphics imagery is so wide that no one software package is suited to handle every task. This requires that students utilize and customize multiple software packages to achieve the end result. Computer Graphics deliverables have a visual/esthetic aspect, and in-depth study of visual esthetics lies outside the CS curriculum. Producing deliverables will require team members with background in such fields. These students typically come from design, communication or art departments and have little background in computer science. Having these “visual experts” on the team introduces the interdisciplinary interaction, and represents a unique opportunity for the CS team members to collaborate with people whose background is sharply different from their own, but equally essential to the success of the final outcome. Because the visual experts will be asking, “How can we achieve visual effect xxx”, many of these team interactions will be similar to those between a client and a consultant. The next section outlines the curriculum for a capstone course that utilizes Computer Graphics and provides an interdisciplinary experience for the students. It also demonstrates that the course can be completed with little or no outlay for software to support the effort, while giving students an ample opportunity to work on a large system of interconnected software. COURSE DESIGN AND SUPPORT Creating interdisciplinary environments incurs three challenges: creating equity among team members of all disciplines, setting up a rich, but manageable software framework, and doing all of this for little or no cost. The project for the course needs to challenge both the CS and visual students. We chose a project to build a virtual set or staging for a theatrical play based on the description from the play’s script. The students were able to choose from the plays A Raisin in the Sun, Private Lives, The Crucible, Mr. Roberts, and The Trip to Bountiful. These plays have a reasonably detailed description of the scene’s appearance. Other plays with a half-page description of the scene would work well. Each play offered a different period, style, and setting that needed to be evoked. Each presented technical challenges the team would need to meet to effectively produce the image. Project success depended on both the technical and visual team members being able to cooperate. Creating the scene requires the use of a graphics pipeline. A pipeline is a collection of software with serial data flow, and is arguably the simplest system of interconnected software packages, and provides a good introduction to the challenges of managing data in such an environment. Teams worked on aspects of rendering that spanned the entire graphics pipeline, including: scene composition, modeling, lighting, texturing, development of modules for the export script, customizing the modeling engine through its SDK or scripting language, and shader development for the rendering package The team members with a visual background tended to focus on the first items in the pipeline and the CS members focused more on the latter. Progress on the project was evaluated through milestones and in-class critiques or code reviews. Balancing the workload between team members is a question of project organization. There is nothing inherently unbalanced in the subject itself. CS students 86

CCSC: Midwestern Conference are often surprised by how difficult it is to produce convincing models and textures, even if they understand how to build the software from the ground up. Also new to CS students is the experience of critiques. In a critique, a student shows a partially-finished work in progress in a public forum to gain feedback for improvement. For CS students, accustomed to perfecting their work and receiving feedback in private, this is a valuable experience. While the overall project goals may have had elements that are underdefined, the criteria for judging in-class critiques and code reviews were equally rigorous. For example, as artists worked on modeling and texturing, they were required to submit “turntables” of the objects they were working on. The turntable rotates the object through 360° so that the modeling or texturing may be analyzed from all sides. Evaluation was based on how well the model and textures matched reference photos, images or videos. Design students acquire photographs of objects similar to what they wanted to include in their scene, so that they and the instructor(s) would be able to compare their digital creations against a real benchmark. There are several ways to gain access to the expertise needed for the critiques. One is to invite a colleague from the college’s Art, Theatre, or Industrial Design department to attend a portion of the class and critique the work-in-progress. Students are graded on how well they follow up on the feedback. An alternative is to run the CS capstone course in parallel with a portfolio or project class in the collaborating Department. If the classes have the same meeting schedule, it is easy to have the two classes meet in the same room as necessary for group activities. This is a simpler solution than petitioning the administration for a team-taught class. Table 3 lists the course milestones. The first milestone is to start working in teams – each team decides on the play, and gathers background material about its setting, which includes identifying or photographing reference images. The team decides on the software they want to use, within the choices given to them by the instructor. In subsequent assignments, the teams work on the technical and visual aspects of each milestone. While the CS students learn to write shaders, the students with visual backgrounds learn to use shaders to achieve believable visual effects for walls, floors and objects in the scene. As these students struggle with creating an accurate, yet efficient model of the scene’s objects, CS students learn about mesh representation and how to create low-poly ‘stand-in’ versions of objects for quicker debugging. Similarly, team members tackle both visual and technical aspects of lighting and staging. Public critiques occur after the third and fifth milestones. This structure works well within a 15-week term. In a 10-week term, it is helpful if each team has at least two members – one visual, one CS – that have taken a Computer Graphics course. Milestone 1. Preliminaries

2. Texturing

Responsibility of CS team Set up pipeline; data formats, computing environment; verify end-to-end function Writing shaders; derivation of uv coordinate mapping

Responsibility of visual team Paper sketches of scene from play. Gather source material for objects, textures in scene. Using shaders. Using paint programs, uv mapping to adjust textures 87

JCSC 24, 1 (October 2008) 3. Modeling

Polygon meshes; Level of detail; Displacement mapping. Exporting models to renderer. Illumination, shadows, ambient occlusion. Light shaders. World-to-view transformation, field of view

4. Lighting

5. Staging

Surfaces of revolution, chamfer/beveling. Proportion of object components. Create turntables Color, position of lights. 3-point lighting: key, fill, back Positioning camera. Balancing fore-, middle-, and background

Table 3: Milestones for the capstone course The software pipeline can pose a significant financial burden, especially for smaller colleges. However, we have compiled several workable environments that are free or low-cost. These give students the tools they need to produce striking imagery, but yet leave parts of the pipeline a little “rough around the edges”, giving the software developers ample opportunity to extend the functionality of various modules. Table 4 lists the components and corresponding scripting language or SDK.

Modeling/Animation Export Image Conversion Rendering Post Processing

Free / GPL Pipeline Blender (Python)

Low-Cost Pipeline 3DS Max (Maxscript, Max SDK) Blenderman (Python) RIBit (Maxscript) IrfanView or GIMP (Scheme) or ImageMagick (shell script, COM; APIs for C++, C, Perl) Pixie or 3Delight (Renderman Shading Language) VirtualDub (Sylia via 3DSMax Video Post C++) (Maxscript)

Table 4: Free and Low Cost Rendering Pipelines These packages are available free on the Web. Further, to support this course, we extended the capabilities of the RIBit 3DS Max script, originally written by Ofer Zelichover and Rudy Cortes[16]. Newly added functionality exports nearly the entire Max Standard Material. The expanded version of RIBit is available at www.depaul.edu/~rwolfe/ribit . 3DS Max, while not free software, does offer a fully

Figure1: Ship's Deck and Wheel from Mr. Roberts by Martin Hulth and Marko Petrovic 88

CCSC: Midwestern Conference functional 30 day evaluation version, and full versions are available to students for less than $100. CONCLUSION Figure 1 contains sample images built by the teams. More important than the imagery, however, is the wealth of experience that students acquire in the course. Students have commented that learning to work with people outside their own discipline was a valuable outcome. Recent alums have told us that their participation in this course was of particular interest to potential employers and was often a topic of discussion during their interviews. The references listed here will provide a resource to others who would like to create an interdisciplinary capstone course that incorporates Computer Graphics. REFERENCES [1] Personal communication with alumni from our program, 2000-2008. [2] Joint Task Force on Computing Curricula. Computing Curricula 2001: Computer Science, IEEE Computer Society and Association for Computing Machinery, 2001, www.sigcse.org/cc2001/cc2001.pdf, retrieved January 31, 2008. [3] Clear, T., Goldweber, M., Young, F., Leidig, P., and Scott, K. Resources for instructors of capstone courses in computing, ACM SIGCSE Bulletin 33(4), 93113, 2001. [4] Cooper, S., Dann, W., and Pausch, R. Alice: A 3-D tool for introductory programming concepts, Journal of Computing Sciences in Colleges 15(5), 107116, 2000. [5] Dunlap, J. Problem-based learning and self-efficacy: How a capstone course prepares students for a profession, Educational Technology, Research and Development 53(1), 65-85, 2005. [6] Ebert, D., and Bailey, D. A collaborative and interdisciplinary computer animation course, ACM SIGGRAPH Computer Graphics 34(3), 22-26, 2000. [7]

Gallivan, M.; Truex, D.; and Kvasny, L. Changing patterns in IT skill sets 1988-2003: a content analysis of classified advertising, ACM SIGMIS Database 35(3), 64-87, 2004.

[8] Goold, A. Providing process for projects in capstone courses, ACM SIGCSE Bulletin 35(3), 26-29, 2003. [9] Jones, R. Design and implementation of computer games: a capstone course for undergraduate computer science education, ACM SIGCSE Bulletin 32(1), 260264, 2000. [10] Kerbs, R. Student teamwork: A capstone course in game programming, Proceedings of the 2007 Frontiers in Education Conference: Global

89

JCSC 24, 1 (October 2008) Engineering: Knowledge without Borders, Opportunities without Passports. F4D-15-F4D-19, 2007. [11

Mosiman, S., and Hiemcke, C. Interdisciplinary capstone group project: designing autonomous race vehicles, ACM SIGCSE Bulletin Vol. 32(1), 270274, 2000.

[12

Naps, T. et al. Evaluating the Educational Impact of Visualization, ACM SIGCSE Bulletin 35(4), 124-136, 2003.

[13

Ochs, J., Watkins, T., and Boothe, B. Creating a truly multidisciplinary entrepreneurial educational environment,, Proceedings of the 2001 ASEE Annual Conference & Exposition: Peppers, Papers, Pueblos, and Professors, Session 2554, 2001.

[14] Parberry, I., Roden, T., and Kazemzadeh, M. Experience with an industry-driven capstone course on game programming: extended abstract, ACM SIGCSE Bulletin 37(1), 91-95, 2005. [15] Pournaghshband, H. The students’ problems in courses with team projects, ACM SIGCSE Bulletin Vol. 22(1), 44-47, 1990. [16] Zelichover, O. www.oferz.com/MaxScripts/RIBit/RIBit.php, retrieved March 27, 2008. [17] Zimmerman, G., and Eber, D. When worlds collide!: an interdisciplinary course in virtual-reality art, ACM SIGCSE Bulletin 33(1) 75-79, 2001.

90

Suggest Documents