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.
Games and 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.
- Game development classes. These are entire curricula,7,40 individual classes,4,6,14,31,39 or capstone projects2,29 designed specifically to develop new games as an end product. The education committee of the main professional organization for the games industry, The International Game Developer Association (IGDA), has proposed a comprehensive curriculum framework conveying the industry’s articulated desires for well-trained college graduates seeking jobs in the game industry. When evaluated against the IGDA curriculum framework, we see that these classes cover all the major core topic areas. Students in these classes must be concerned with all aspects of producing a real game including entertainment value, visual quality, audio effects, physics simulations, and realtime performance.
- Game programming classes. These are classes (for example, Kuffner’s CMU course37) designed specifically to study technical aspects and issues involved in building games. For example, topics covered may include event loops, path planning algorithms, and terrain representation. These classes typically do not require building an end product and the topics covered are general and usually are applicable to different domains. These classes concentrate on covering the game programming topic area in the IGDA curriculum framework.
- Game development client. These are existing CS classes that creatively integrate games into their existing curriculum. Typically, games are used as programming assignments,1,3,5,22,25,33,34,37 or to teach abstract concepts,11,15,30 or as an example application area to teach the concepts involved in an entire topic area.9 These are traditional CS classes that exist independent of game programming. These classes are actually clients of game development where they use game development as a vehicle to deliver specific abstract concepts. After these classes, students are expected to understand the abstract CS concepts, and not the details of game development.
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.
Games and introductory programming 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:
- The materials should not demand knowledge in computer games or graphics.
- The materials should include independent modules that are limited in curriculum scope.
- The materials should support selective experimentation by individual faculty members in small-scale pilot demonstration projects in their existing courses.
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.
Games and Elective CS 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).
Guidelines for Consideration
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:
- Institutional oversight. Departmental committee consensus is often required for significant changes to core courses. Because of the potential impact, it can be especially challenging to arrive at a consensus for modifications to introductory-level courses like CS1/2. A strategy is to design limited-curriculum-scope experiments to gain experience (and collect results) to assist the committee’s decision-making process.
- Faculty background. Many faculty members did not grow up playing computer games and most are not familiar with graphics programming. When developing or evaluating materials for adoption, it is essential to pay attention to the prerequisite knowledge. An ideal approach would be to clearly separate and hide the graphical and user interactivity functionality. In this way, faculty and students only need to concentrate on the core CS concepts.
- Gender and expertise neutrality. As with any powerful tool, inappropriate use of games can backfire and result in further alienation of underrepresented groups.20 It is important that the gaming materials are gender and expertise neutral. For example, it is important to avoid violence and unnecessary competitions.26 The materials used should discourage the addition of superfluous "eye-candy" graphical enhancements, or user interaction programming by students with extensive prior programming experience. Doing so will help to avoid intimidating other less-experienced students.
- Infrastructure support. Free and simple are the keywords here. Given the financial reality of most schools, all materials must be freely available; the associated institutional infrastructure requirements must be modest and straightforward.
- Conceptual integrity. Our discussion focuses on the traditional CS courses. It is important to remember that ultimately, the goal is to facilitate students’ learning about the core CS concepts. Any dilution, even in favor of acquiescing to some students’ desire and motivation to become game developers, would do the students a disservice.
- Textbook availability. As in all pioneering work, mature and well-organized materials are mostly under development. Although there are some textbooks available for specific approaches (for example, CS1/2,11 computer graphics35), mostly, one must be ready to develop custom reading material to guide students along.
Acknowledgments
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.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment