Mobile game development projects in CS 1

Using computer games in the computing curriculum has been generally accepted as a viable tool to increase student engagement with the material and motivation to study. However, the process of design and implementation of a complete game offers a number of substantial challenges. Consequently, game development may be best suited for advanced courses, in which students already have sufficient hands-on experience with software development and exposure to a variety of advanced topics, such as computer networking, databases, and artificial intelligence. At the same time, games typically found on mobile devices may offer the advantage of being simpler by nature and, thus, easier to program. This could make it more feasible for students in introductory courses to develop playable games as a part of their classroom experience. Furthermore, a large majority of students find it much easier to relate to mobile applications and devices (as opposed to their desktop counterparts) due to the increasingly important role that mobile technology plays in their lives. A number of current studies suggest that today’s students may quickly become disillusioned with Computer Science because many of them perceive their classroom experience as irrelevant or having very little to do with the real-world applications of computing. At the same time, a certain percentage of students may be interested in other areas of computing that emphasize design or theory over coding. By exposing students to a wide range of advanced topics early in their academic career, we are working on an approach that aims to show students that computing can be much more than coding and that there are many areas in which programming plays a supplementary role. This work is supported by a number of research works that suggest that more participatory learning methods such as those used in mobile game development can level the playing field for different types of students. Supported by NSF TUES/CCLI award DUE-0941348, we are currently working to produce a comprehensive set of learning modules consisting of laboratory projects and accompanying instructional materials for introductory Computer Science courses taught using Java. We use mobile game development early in the curriculum as a motivational learning context. Each learning module serves as a platform to introduce students to an advanced topic, such as artificial intelligence, computer security, or networking, as well as to practice a fundamental topic, such as arrays or inheritance. By demonstrating these and other nonprogramming and diverse aspects of the discipline to the students early, this approach may help dissolve a widely popular misconception that "CS is all about coding." Research literature and our own experience demonstrate that most Computer Science students seem to be very interested in computer game development and mobile computing, and introducing students to these topics early in the curriculum could serve as a good tool to increase student retention. More broadly, current research literature indicates that students perform better when they find their course material relevant and motivating. Each learning module contains a number of components: • Learning objectives and outcomes clearly states what students will do in the project and what they will accomplish upon completing it; • Problem statement describes a game, typically a wellknown puzzle or board game, that is in the core of this project; • Programming project provides the scaffolding for the students to use as they add their own code to implement the missing features of the gameplay or add new ones; • Demonstration game and a sample solution is a resource that can aid instructors explain the learning objectives; • Lecture notes introduce the students to the theoretical topics covered by the project; • Taking a step further suggests how students could take a step above and beyond this project by extending the existing game or reusing the code to create a new game. Learning modules developed so far have been tested in several courses at two different institutions. We are currently in the process of making changes and finalizing the modules to address the concerns raised in the interim assessment report. A few of the learning modules have been presented to the CS community also and they were well received.