Introduction
Most people enjoy playing games of some sort, and a large number of college students play computer games on a regular basis. Many computer science instructors have attempted to take advantage of this fascination with games by using them as examples and assignments in undergraduate computer science courses. For instance, Shifroni and Ginat [1] developed a game to help teach network communication protocols by requiring students to act out the roles of various layers of the OSI model. Baker et al. [2] created an entertaining card game that helps students learn about the software engineering process. Ariyapperuma and Minhas [3] have used freely available online games as laboratory activities to teach network security. Natvig and Line [4] developed a web-based game environment that introduces concepts in a computer fundamentals course. Other instructors have used games as an ongoing theme when teaching object oriented principles [5], and some have even incorporated special software packages into their courses that allow students to easily create sophisticated graphical games while learning about object orientation [6]–[7]. Whole courses [8]–[9] and even concentrations within the computer science curriculum [10] have focused on the idea of game design.