Credit: Ben Fry / http://benfry.com/mariosoup
Since computing is the foundation of modern society, a proficient computing work force is essential for maintaining the country's leadership and competitiveness in the global economy. The recent decline in enrollments across computer science (CS) departments and the decrease in student diversity pose significant challenges to the continuation of the nation's prominent position in the global high-technology arena. The CS education community responded to this challenge with a general critical self-reexamination where the entire traditional CS education system is being evaluated, from the outreach to K12 education, to the fundamental philosophies behind the curriculum design. One of the emerging results from these developments is the push for presenting abstract CS concepts in the context of familiar real-world applications.
Relating abstract principles to real-world experience has become increasingly prominent in mathematics and general science education. For example, the Calculus Reform movement of the 1990s included both pedagogical changes and foci on real-world problems, while the Carl Wieman Science Education Initiative at the University of British Columbia has redesigned its freshmen introductory physics course such that:a
"As much as possible, the standard introductory physics material will be presented in connection with real-world situations and issues such as home heating, transportation, and electricity generation."
In the CS education arena, the Media Computation of Georgia Tech18 is an excellent example where foundational programming concepts are presented in the context of popular digital multimedia applications. This contextualization of computing education18 is an ongoing effort and interactive computer video games, being one of the most familiar application areas for our students, is a context favored by many CS educators.
This article presents the USC GamePipe Laboratory effort where the entire CS curriculum is redesigned in the context of game development (Please refer to the USC GamePipe Laboratory effort by Michael Zyda on page 66 where the CS curriculum is designed in the context of game development). This article examines the ongoing efforts to integrate computer video games in existing traditional CS courses. The discussion is divided into introductory programming courses and elective CS courses, and concludes with guidelines for considering integrating computer game content into existing CS classes.
There are many types of games that are suitable for teaching CS subjects including many noncomputer games or games that are based on dedicated devices (for example, Lego robots). Our focus is on interactive graphical computer games. It is important to recognize that in the CS education arena the term "computer game" is often used to refer to the attempts at, and the results of, effective and meaningful integration of animated graphical visualization and various degrees of interactivity. Because of the unknown entertainment value, strictly speaking, much of these are interesting and innovative teaching materials and are not computer games in a commercial sense.
As discussed in Sung et al.,33 when examining recent efforts in integrating computer games into CS classes, we observe three general categories.
Courses in the first two categories are new courses designed to teach students about game development. Over time, as the game development field matures, it is expected that these courses will evolve and eventually some of the contents will become part of the standard CS curriculum. This is not unlike the early years of many existing disciplines in CS (for example, software engineering13 or computer graphics8), where the syllabi of pioneering courses consolidated as the disciplines mature. Courses in the third category, the "game development clients," are traditional CS courses that can be found in existing CS curricula. The earliest work in this area1,12 adapted games almost anecdotally without holistic considerations; most of the more recent work is structured around addressing core competency areas with reference to the ACM Curriculum. Accordingly, courses in the "game development clients" category can be divided into two broad efforts: introductory programming classes (CS1/2) and advanced/elective classes.
Many CS educators recognized and took advantage of younger generations' familiarity and interests for computer video games and integrate related contents into their introductory programming courses. Because these are the first courses students encounter, they build excitement and enthusiasm for our discipline.24,b Based on the type of effort required by faculty, existing work done in this area can be classified into three broad approaches:
Little or no game programming.9,17 In these courses students learn by playing custom games but they do not actually program the games.
Per-assignment game development.3,21,32,33,38 All these classes developed games as part of individual programming assignments. In each case, isolated games are designed around technical topics being studied.
Extensive game development. For example, faculty must design programming assignments based on custom library,39 general game engines,4 dedicated game engines,25 specialized programming environments,22 custom object-oriented class hierarchies,25 specific curricula,23 or new programming languages.11
Much of this work reported resounding successes with drastically increased enrollments and student successes.3,11,23 Based on these results, it is well recognized that integrating computer gaming into CS1 and CS2 (CS1/2) courses, the first programming courses students encounter, is a promising strategy for recruiting and retaining potential students. With the enrollment challenges faced by the CS discipline, it is desirable and important that this strategy can be adopted widely by all interested faculty and departments.
However, most of the existing work in this area is based on pioneering exploratory projects by faculty members with expertise in computer graphics and gaming.3,23,28 With few exceptions, these projects are student-centric where the main goals of study are student engagement and various learning outcomes. Adaptability and generality of the resulting materials are usually not main concerns. For the faculty members teaching CS1/2 courses, most of which are without computer graphics or gaming background, it can be challenging to take advantage of these results.
In addition, when considering experimentation with CS1/2 courses, it is important to appreciate institutional oversight procedures. Though becoming less controversial in recent years, many CS educators continue to be unsure about integrating gaming in formal educational settings.20 It can be challenging in departmental committees to arrive at consensus for significant modifications to CS1/2 courses, especially if the modifications involve computer games. For these reasons, to be widely adaptable, game-related CS1/2 materials should be designed with the following considerations:
Selective Gradual Adoption. Results from the extensive game development approach discussed previously typically include large amounts of adoptable/adaptable courseware materials. However, using these materials often requires a significant investment of time, for example, understanding a game engine, or significant reworking of an instructor's existing curriculum. Because of the considerable overhead, results from this approach are typically not suitable for selective adoption.
In terms of suitability for selective adoption, we expect that results from the per-assignment game development approach will be most applicable. For example, one could selectively replace nongame assignments in existing classes by the corresponding games assignments. However, because of the pioneering nature of work in this area, many of the results on per-assignment game development are "anecdotal" and do not discuss the impact of such assignments on the CS1/2 curriculum holistically. For example, the results from Huang only involve turn-based strategic games,21 Ross only discusses puzzle games,32 and the discussion from Valentine is based on a single game.38
The Game-Themed Introductory Programming Project at the University of Washington, Bothellc is specifically designed to address these issues. In the first phase of our project, we have designed and built general game-themed CS1/2 programming assignment modules that demand no existing knowledge of games or graphics from the faculty,33 and have demonstrated it requires minimum changes to existing classes in order to successfully adopt these materials. Currently in the second phase of our project, we are building game-themed examples and tutorials designed to provide a pathway for interested faculty to gradually incorporate game-related materials into their existing courses. Our project is student-centric because our materials allow students to practice CS concepts in a more real-world-like context. More importantly, the materials are also faculty-centric because these materials are the stepping-stones for faculty to begin experimenting with a promising new approach to teaching CS1/2 courses.
As highlighted earlier, the CS education community has a sound understanding of how to integrate visualization and interactivity in delivering CS1/2 content and has achieved impressive successes. In comparison, there is a relatively modest amount of work done in integrating computer games into existing traditional CS elective classes. This is not surprising as a successful systematic integration requires the delivery of an entire technical topic area to lend itself well in visualization and interactivity. There are anecdotal examples of using game content in delivering selective topic areas (for example, design patterns,16,27 or spatial search algorithms34). These are small-scale projects not meant to address entire courses as identified in the standard CS curriculum.
Artificial intelligence (AI),9 software engineering (SE),5,10,37 and computer graphics (CG)36 are examples of elective courses where published results describe attempts at systematically integrating game development. In all of these cases, the stated student learning outcomes are similar to those from the typical CS curriculum and do not include competencies involved in game development as defined by the IGDA curriculum framework. In these classes, students study the core topic areas and implement games to demonstrate their understanding of the fundamental CS concepts. This work reported high student engagement and enthusiasm, while pointing out that the faculty members involved must develop large amounts of software infrastructure to facilitate and support students' game development.
While it is the case that proper integration of game development and game content in CS classes have the potential to further engage students resulting in higher success rates, it is not the case that any game content will result in having a positive impact.
Notice that all three of these topic areas have significant overlaps with computer games in general: intelligent behavior (AI) is one of the most important attributes of modern games, SE methodologies are applicable in any software product development, and topics in CG are the conceptual framework for visualization in games. One can argue that for these topic areas, it is relatively straightforward to integrate game content in a consistent manner. In general, for topic areas that do not offer obvious overlaps with computer games or game development (for example, compiler or programming languages), dedication and creativity would be required to develop the elaborate infrastructure and to systematically integrate the new contents. In these cases, one should carefully examine the trade-offs between required efforts, expected benefits, and consider other perhaps more appropriate practical contexts (for example, popular applications on the Internet).
While it is the case that proper integration of game development and game content in CS classes have the potential to further engage students resulting in higher success rates, it is not the case that any game content will result in having a positive impact. In addition, when exploring the potential for development or adoption of game content, we must work within the bounds of institutional oversights and be conscious about the expertise areas of faculty members. The following are some factors for consideration:
This work is supported in part by the National Science Foundation grant DUE-0442420 and Microsoft Research under the Computer Gaming Curriculum in Computer Science RFP, Award Number 15871 and 16531. All opinions, findings, conclusions, and recommendations in this work are those of the authors and do not necessarily reflect the views of the National Science Foundation or Microsoft.
1. Adams, J.C. Chance-It: An object-oriented capstone project for CS-1. In Proceedings of the 29th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 1998, 1014.
2. Barnes, T., Richter, H., Powell, E., Chaffin, A., and Godwin, A. Game2learn: Building CS1 learning games for retention. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education. ACM, NY, 2007, 121125.
3. Bayliss, J.D. The effects of games in CS1-3. Journal of Game Development 2, 2 (2007).
4. Bierre, K., Ventura, P., Phelps, A., and Egert, C. Motivating OOP by blowing things up: An exercise in cooperation and competition in an introductory Java programming course. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2006, 354358.
5. Chen, W-K and Cheng, Y.C. Teaching object-oriented programming laboratory with computer game programming. IEEE Transactions on Education 50, 3 (Aug. 2007), 197203.
6. Clark, B., Rosenberg, J., Smith, T., Steiner, S., Wallace, S., and Orr, G. Game development courses in the computer science curriculum. J. Comput. Small Coll. 23, 2 (2007), 6566.
7. Coleman, R., Krembs, M., Labouseur, A., and Weir, J. Game design and programming concentration within the computer science curriculum. In Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 545550.
8. Cunningham, S., Brown, J.R. Burton, R.P., and Ohlson, M. Varieties of computer graphics courses in computer science. In Proceedings of the 19th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 1988.
9. da Silva, F.S.C. Artificial intelligence for computer games. University of Sao Paulo, Microsoft Academic Alliance Repository Newsgroup, 2006; http://www.msdnaacr.net/curriculum/pfv.aspx?ID=6210.
10. da Silva, F.S.C. Software engineering for computer games. University of Sao Paulo, Microsoft Academic Alliance Repository Newsgroup, 2006; http://www.msdnaacr.net/curriculum/pfv.aspx?ID=6211.
11. Dann, W., Cooper, S., and Pausch, R. Learning to Program with Alice. Prentice Hall, Upper Saddle River, NJ, 2006.
12. Faltin, N. Designing courseware on algorithms for active learning with virtual board games. In Proceedings of the 4th Annual SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Education. ACM Press, NY, 1999, 135138.
13. Freeman, P. Software engineering education: Needs and objectives. In Proceedings of the ACM SIGCSE-SIGCUE Technical Symposium on Computer Science and Education. ACM Press, NY, 1976, 266.
14. Frost, D. Ucigame, A Java library for games. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2008.
15. Gestwicki, P.V. Computer games as motivation for design patterns. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2007, 233237.
16. Gestwicki, P.V. Computer games as motivation for design patterns. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2007, 233237.
17. Giguette, R. Pre-games: Games designed to introduce CS1 and CS2 programming assignments. In Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2003, 288292.
18. Guzdial, M. Contextulized computing education. Invited Presentation, Microsoft Research Faculty Summit; http://home.cc.gatech.edu/guzdial/169 (July 2008).
19. Haden, P. The incredible rainbow spitting chicken: Teaching traditional programming skills through games programming. In Proceedings of the 8th Australian Conference on Computing Education. Australian Computer Society, Darlinghurst, 2006, 8189.
20. Haller, S., Ladd, B., Leutenegger, S., Nordlinger, J., Paul, J., Walker, H., and Zander, C. Games: Good/evil. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2008, 219220.
21. Huang, T. Strategy game programming projects. In Proceedings of the 6th Annual CCSC Northeastern Conference on the Journal of Computing in Small Colleges. Consortium for Computing Sciences in Colleges, 2001, 205213.
22. Külling, M. and Henriksen, P. Game programming in introductory courses with direct state manipulation. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education. ACM Press, NY, 2005.
23. Leutenegger, S. and Edgington, J. A games-first approach to teaching introductory programming. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2007, 115118.
24. Lewis, M., Leutenegger, S., Panitz, M., Sung, K., and Wallace, S.A. Introductory programming courses and computer games. In Proceedings of the 40th SIGCSE Technical Symposium on Computer Science Education. Mar. 2009.
25. Lewis, M.C. and Massingill, B. Graphical game development in CS2: A exible infrastructure for a semester long project. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2006, 505509.
26. Natale, M. J. The effect of a male-oriented computer gaming culture on careers in the computer industry. SIGCAS Comput. Soc. 32, 2 (2002), 2431.
27. Nguyen, D.Z. and Wong, S.B. Design patterns for games. In Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2002, 126130.
28. Parberry, I., Kazemzadeh, M.B., and Roden, T. The art and science of game programming. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2006, 510514.
29. Parberry, I., Roden, T., and Kazemzadeh, M.B. Experience with an industry-driven capstone course on game programming: Extended abstract. In Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2005, 9195.
30. Pulimood, S.M. and Wolz, U. Problem solving in community: a necessary shift in CS pedagogy. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2008, 210214.
31. Repenning, A. and Loannidou, A. Broadening participation through scalable game design. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. New York, NY, USA, 2008.
32. Ross, J.M. Guiding students through programming puzzles: Value and examples of Java game assignments. SIGCSE Bull. 34, 4 (2002), 9498.
33. Sung, K., Panitz, M., Wallace, S., Anderson, R., and Nordlinger, J. Game-themed programming assignments: The faculty perspective. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2008, 300304.
34. Sung, K. and Shirley, P. Algorithm analysis for returning adult students. In Proceedings of the Sixth Annual CCSC-NW Conference. J. Computing Sciences in Colleges 20, 2 (Dec. 2004) 6272.
35. Sung, K., Shirley, P. and Baer, S. Essentials of Interactive Computer Graphics: Concepts and Implementation. A.K. Peters, Wellesley, MA, 2008.
36. Sung, K., Shirley, P. and Reed-Rosenberg, R. Experiencing aspects of games programming in an introductory computer graphics class. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2007, 249253.
37. Sweedyk, E., deLaet, M., Slattery, M.C., and Kuffner, J. Computer games and CS education: Why and how. In Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education. ACM Press, NY, 2005, 256257.
38. Valentine, D.W. Playing around in the CS curriculum: Reversi as a teaching tool. J. Comput. Small Coll. 20, 5 (2005), 214222.
39. Wallace, S.A. and Nierman, A. Using the Java instructional game engine in the classroom. J. Comput. Small Coll. 23, 2 (2007), 4748.
40. Zyda, M. Guest editor's introduction: Educating the next generation of game developers. IEEE Computer 39, 6 (June 2006), 3034.
a. http://www.cwsei.ubc.ca/departments/physics-astrocourses.htm (Nov. 2007 update).
b. It is important to reiterate that, after these classes students are expected to understand abstract programming concepts rather than concepts specific to building games.
c. http://depts.washington.edu/cmmr/Research/XNAGames/index.php
DOI: http://doi.acm.org/10.1145/1610252.1610273
©2009 ACM 0001-0782/09/1200 $10.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2009 ACM, Inc.
No entries found