tegrate 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
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 ad-vanced/elective classes.
Games and introductory
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
24, b Based on the type of
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.
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
39 general game engines,
4 dedicated game engines,
25 specialized programming environments,
object-oriented class hierarchies,
25 specific curricula,
23 or new programming
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
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 commit-
tees 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 1.
knowledge in computer games or
The materials should include in- 2.
dependent modules that are limited in
The materials should support se- 3.
lective 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 adopt-able/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
32 and the discussion from Valentine is based on a single game.
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 knowl-
XNA Games/ index.php