Serious Games + Computer
Science = Serious CS
Katrin Becker, J. R. Parker
Digital Media Laboratory
University of Calgary
Calgary, Alberta, Canada
(403) 220 6784
beckerk@ucalgary.ca,
jparker@ucalgary.ca
ABSTRACT
There has been significant recent interest in computer games in University and College curricula as a way to teach early computer science, to attract more students into the program, to teach advanced concepts, and to help lend vocational weight to a curriculum. In this article we discuss several ways that games can contribute to an undergraduate CS program, and illustrate specific ways that the use of games has influenced learning, the students, the faculty, and the institution where these courses have been implemented.
1. INTRODUCTION
Courses and programs related to computer games and video game programming and design have existed for a decade or so, but they have attracted widespread attention only relatively recently. Many institutions still view games as academically marginal, and many IT policy statements still expressly forbid students from playing, storing, or installing any sort of games on their university accounts. When a course on games programming/design is proposed for a university program, there can be a significant degree of opposition from faculty. However, the synergistic effects of integrating a large number of diverse computer science topics/concepts into one framework, the inclusion of pertinent portions from Fine Arts disciplines, the software engineering practice that accrues from the group effort to build a non-trivial game, and the potential positive recruiting effect on enrollment deficits are strong positive arguments that are being recognized by administrators and teachers. It is true that a game programming course does not teach a significant new set of computing skills that cannot be taught in more traditional graphics, algorithms, and data structures classes, yet a game is a complex piece of software that combines advanced concepts from a wide variety of areas within CS, and the study of game programming and development allows each individual component to be placed in a very practical context. In addition, students appear to be strongly motivated by the subject material, and spend a great deal of time working on their assignments.
This paper will describe three specific examples of game use in the undergraduate CS curriculum and their impact on the students, faculty, and school. When used as assignments in first year there is evidence that students work harder and perform better. The design and implementation of a senior CS course in game programming, the capstone course of a concentration in game development, will be described, along with some observed results. The incorporation of arts disciplines into the CS program, along with the other two courses incorporating games has led to a successful research program in game technology at the authors’ institution. This program often uses undergraduate students as key players, doing programming, design, acting as subjects, and co-authoring research papers.
2. Games as Assignments - Year 1
There are indications that two thirds or more of all freshmen in computer science became interested in CS through video games. Current wisdom implies that learning is most effective when we build on what the learner already knows, and using situations with which they are familiar [3, 9]. Students understand games far better than they understand employee records keeping, or ‘widget’ manufacturing, both of which are sources of typical freshman programming problems. The authors have been using classic arcade games as assignments in the first year since 1998 with great success because students understand the problem, classic games make use of older and simple technology, and they are recognizable cultural objects for that generation [2].
In 2002 an opportunity arose that permitted us to measure the effect that game assignments have on the students. A last minute change of policy caused two first year (CS102) classes to diverge in their assignments sets, one set being game based to some extent and the other set being a fairly standard set in the behaviorist tradition. The assignments were handed in using an on-line system, so all of the source code was accessible. Both classes used Java. Standard software engineering complexity metrics were used to determine how complex the student solutions were, and to compare this between the two distinct assignment sets, which were in fact two concurrent lecture sections. There appears to be very little previous work [4] that involves a complexity analysis of assignments in the way that was done here, namely, the use of perceived effort as a measure of success. Assuming that the assignment grades in both classes are more or less equivalent, as determined by review of the assignments by experienced teachers, the assignments that involved the largest amount of work or effort should be an indicator of how much was learned [8, 15].
The actual assignments,
beginning with the standard set are:
1. Read percentage grades and print corresponding letter grades.
2. Create a class that represents a point in a two dimensional Cartesian coordinate system.
3. Create subclasses shape, rectangle, circle, and test from the point class defined in assignment 2.
4. Swing-based mortgage calculator.
5. Simulate a greenhouse. Has sensors and effectors, uses threads and a simple GUI.
The Game-based
assignment set is:
1. An implementation of a simple calculator.
2. First class - integrate a BigNum class into the calculator.
3.
Write an
ACSII-graphics version of the Four Seasons Solitaire game.
4. Design and write a recursive parser for expressions.
5. Design and implement an ASCII-graphics
version of the Centipede arcade game.
|
|
Set A |
Set B (games) |
Set A: 3&5
only |
Set B 3&5
only |
|
N |
369 |
481 |
412 |
636 |
|
V |
315 |
534 |
301 |
648 |
|
L |
2556 |
4846 |
2410 |
5978 |
|
LOC |
117 |
152 |
131 |
203 |
|
E |
13,623 |
24,910 |
15,321 |
34,740 |
|
TC |
4.2 |
7.7 |
9.5 |
10.7 |
|
CC |
6.84 |
4.75 |
1.7 |
4.18 |
To assess the student
assignments for complexity, we used the commonly encountered Halstead
metrics [6], precisely because they are commonly encountered and
understood. We computed select metrics automatically from the code submitted
and calculated an average for each group. The values selected for calculation
were: Number of Tokens (N),
Vocabulary (v), Length (L), Lines
of Code (LOC), Effort (E), Time to Code (TC). We also computed the cyclomatic
complexity (CC) [10]. The results, tabulated in Table 1, show a
significant advantage to the game-based assignment set over the other in terms
of every complexity measure. The average values for the actual game assignments
are computed too so that they can be compared directly against the
corresponding non-game assignments at the same point in the course.
Conclusion: In all cases the game assignments are more
complex and require more effort than the other assignments, and this is
amplified when only the two game assignments are considered. Our
observation was that the students were quite willing to spend the extra effort
required by the more complex game assignments. Following up on the students in
successive courses showed a tendency for the students who did the game
assignments to get slightly higher GPAs in second year courses, including
theory. The students in the game group achieved an average grade 0.7 higher
than did the behaviorist group in the successor programming class. Grades are
computed on a 4-point scale, so this would represent an 18% improvement. This
improvement deteriorates with time if the instructional methods are not
continued. Taking the successor course 4 months later reduces the improvement
to 0.1 from 0.7, or 2.5%. Improvement is higher for the 'A' students [12]
3. A Game Programming Course
The author’s institution has offered a capstone course on computer game programming since January, 2000. This course is a regularly timetabled fourth year class, taught in the Winter term (second semester). This course has been designed and is taught largely by staff from a successful professional game development company - Radical Entertainment of Vancouver BC. For practical reasons of time and distance, all of the lectures are provided during one single week, 7 hours per day, at the beginning of January before regular classes begin. Thus all essential lecture material is complete before the students begin their project.
Students were organized into groups of five, each responsible for creating one game. A driving or racing game was used for several reasons. First, it is representative in terms of graphics, sound, and play. Next, the graphics can be simple while maintaining playability. There’s no need for hard to render objects like trees and animals, or for character animation. Finally, in spite of those simplifying aspects, a driving game involves challenging physics, and is sufficiently complex for a single semester. The high concept design of the game was created in the first week of class when the industry professionals were present. Then regular weekly lab meetings were used as the venue for discussions, tutorials, and just in time instruction. Development of the game mimics a real game development cycle, complete with the usual design documents and publisher site visits for demos. The game they create becomes part of their professional portfolio. Student assessment of the course as a whole is consistently positive, with numerical values between 6.1 and 6.9 on a 7 point scale. They more pleased overall with this course than with others, spending time on their work voluntarily. One or two students find jobs each year based on this course, and many are still in the game industry. Discussions with the Faculty of Science Recruitment Officer have revealed that about 30% of students admitted to CS during his four year tenure came to our school because of the game course and./or program.
Many
of the final products were quite sophisticated.
MiniMayhem for example is a combat driving game where cars are equipped
with missiles and mines, which can be picked up by driving through a rotating
floating cube (see Figure 1). Game play consists of attempting to destroy your
opponents which consist of three cars controlled very effectively by the game’s
AI module. The setting looks like the floor of a family room. Cars are 1-2
inches high, and the floor is littered with toys, books, and Lego blocks which
serve as both obstacles and places to hide. There is a very modern sound track,
good sound effects, and multiple camera positions. One of its strong points is
that allows the player to adjust things like the friction on surfaces and the
vehicle acceleration. One of the game’s builders was hired by a Vancouver game
developer upon graduation.
Although many computer science departments still describe their courses, and therefore their entire programs, as a simple list of topics to be covered in spite of the fact that the Computing Curricula specifies objectives and outcomes for each topic [1, 5, 7]. It is now widely acknowledged that content standards are less desirable than performance standards for describing learning goals [17]. This course includes descriptive objectives for real-time rendering, simulation, animation, human/computer interfaces, artificial intelligence, software design, real-time systems, information retrieval, parallel and distributed programming, audio/signal processing, networking, and elements of algorithm analysis [16]. A complete list of the objectives and outcomes can be found in [14], but an example is:
Upon
completion of the course, the student should be able to explain what real-time
scheduling algorithms do, and how they enable the response time requirements of
real-time systems to be achieved; demonstrate an understanding of their design
and implementation issues.
4. Computer Science and Arts
Due to the variety and distinct natures intrinsic with the artistic experience and media, computer science has not traditionally been a cooperative or understanding partner of the artist. Although a significant fraction of computer scientists either draw or play an instrument they appear to prefer processing numerical data to creating drawings and music. Effective joint efforts between artists and computer scientists require a comprehension of the opportunities and problems in both sets of disciplines, and video game projects offer a unique opportunity to present the students with a relevant situated learning experience.
Our practical experience has been that music students are easier to attract into game collaborations than are art or drama students. We have had music students involved in three different groups, each time with success. The music students perform and compose new music for the game. They are often registered in a project course in composition in the music department, and are not members of the game class per se. This kind of collaboration between departments rarely requires external approval, and so can be arranged by the instructors themselves.
One of the courses taught was a joint CS/Drama effort that included students from the resident campus as well as students from Carleton University. The off-campus students worked on a similar project in tandem with the resident ones, and the two groups remained in touch through teleconferences. We were also affiliated with the Banff Centre through the New Media Institute, who provided information, facilities, and seminars for the students [11, 13]. The project involved the design and development of computer games to teach high school physics cpncepts to remote rural communities online. The result was a role-playing game (RPG) that could be extended to cover the entire high school physics curriculum by using multiple levels.
Providing opportunities for computer science students to work with artists at a relatively early stage in their careers will create a new kind of graduate: one possessing an amalgam of the skill sets and an appreciation of the working styles from both fields. Working together on a large multimedia project like a game gives them an understanding of how the two distinct groups can work together effectively.
5. Conclusions
Our experience with using games in various ways and at different points in the program has brought several things to light. First, using games as part of a CS curriculum offers recruitment potential for students - roughly 1/3 of our first year class has been attracted by the game courses and concentration is quite significant. Next, game assignments can not only be successfully completed by first year students, but that they result in significantly more effort on the part of the students, and a residual superior performance in successive courses. The capstone game course has facilitated a significant degree of undergraduate participation in research, has added to research funding to, and has increased the number of publications coming from the digital media research group. Collaborations with Fine Arts has resulted in closer understanding between the groups, productive research connections, and game related jobs and teaching collaborations, allowing interested students to study music with a goal of building video games.
There are additional impacts of the use of games that have not been discussed in detail due to space considerations. The media is very interested in games from many perspectives, and both television and newspapers come to the games class demos each spring. The resulting publicity for the institution is inexpensive and invariably very positive. We showcase games that the students create in recruiting efforts and at open house events. Our university president and vice president have enjoyed playing the driving games. Finally, we have many former students that are now working in the industry, both as game developers and for third party support software developers.
There appears to be no significant downside to the use of games in the CS curriculum. The program was relatively inexpensive to operate and could be self-sustaining through incoming grant funds, and at a time when many CS departments are still struggling to increase enrollments, the positive impact to the reputation of the institution can only help.
7.0 References
1. Computing Curricula 2001: Final Report of the
Joint ACM/IEEE-CS Task Force on Computer Science Education. Roberts, E. and
Engel, G. eds., IEEE Computer Press, Los Alamitos, CA, 2001 retrieved from: http://www.acm.org/sigsce/cc2001 on
2. Becker, K.
and Parker, J.R., All I Ever Needed to Know About Programming, I Learned From
Re-writing Classic Arcade Games. in Future
Play, The International Conference on the Future of Game Design and Technology,
(Michigan State University, East Lansing, Michigan, 2005).
3. Bruner,
J.S. Toward a theory of instruction.
Harvard University Press, Cambridge, Mass., 1966.
4. Dobing, B.
and Erbach, D., A comparison of business and game projects for the intermediate
programming classes. in 16 Annual Conference
of the International Academy for Information Management, (New Orleans, LA.,
2001), 287-296.
5. Gronlund,
N.E. How to write and use instructional
objectives. Merrill, Upper Saddle River, N.J., 2000.
6. Halstead,
M.H. Elements of software science. Elsevier,
New York, 1977.
7. Kieran-Greenbush,
S. Goals, Objectives & Educational Outcomes, Columbia University, 2000
retrieved from: http://www.columbia.edu/itc/tc/TU4819/4831-010/course-materials/goals-objectives/Goal-Objectives-ed-outcomes-v95/
on April 20, 2006
8. Kirkpatrick,
D.L. Techniques for evaluating training programs. Training and Development Journal. 178-192.
9. Lave, J.
and Wenger, E. Situated learning :
legitimate peripheral participation. Cambridge University Press, Cambridge
[England] ; New York, 1991.
10. McCabe,
T.J. Complexity measure. IEEE
Transactions on Software Engineering, 2
(4). 308-320.
11. Parker,
J.R., Games and Animation: Collaborations Between the Arts and Computer
Science. in 5th International Conference
on Information Technology: Coding and Computing, IT Education, Curriculum &
Assessment Track, (Las Vegas, USA, 2004).
12. Parker,
J.R. and Becker, K., Measuring effectiveness of constructivist and behaviourist
assignments in CS102. in 8th annual
conference on Innovation and technology in computer science education,
(Thessaloniki, Greece, 2003), ACM Press
New York, NY, USA, 40 - 44.
13. Parker,
J.R., Becker, K. and McCullough, D., Computer Science and the Arts: Some
Multi-Disciplinary Teaching Collaborations. in 8th annual conference on Innovation and technology in computer science
education, (Thessaloniki, Greece, 2003), ACM Press New York, NY, USA, 40 - 44.
14. Parker,
J.R., Loose, K.W. and Verheyde, N., Objectives and Outcomes of a Senior Course
in Computer Game Programming. in Western
Canadian Conference on Computing Education (WCCCE), (Mt. Royal College,
Calgary, Alberta, Canada, 2006).
15. Romer,
R. Making Quality Count in Undergraduate Education, Denver Education Commission
of the States, 1995 retrieved
16. Sánchez-Crespo
Dalmau, D. Core techniques and algorithms
in game programming. New Riders Education, Indianapolis, Ind., 2004.
17. Wiggins,
G.P. and McTighe, J. Understanding by
design. Association for Supervision and Curriculum Development, Alexandria,
Va., 1998.