FDG 2015 Tutorial

Learn CS1/2 by Playing and Building Commercial Grade Casual Games


Designed specifically for educators who are interested in engaging students with videogames in their classrooms for learning programming, and based on our original casual game designs as exemplified in the above figures, this will be a half-day tutorial that involves the participants in:

  1. Analyzing the familiar game mechanics from the perspective of fundamental programming constructs,
  2. Understanding and evaluating the design considerations involved in our custom casual game APIs,
  3. Working in groups to design your own versions of these games that are suitable for demonstrating and teaching programming concepts, and
  4. Reporting back for group feedback, and examining our existing game-based teaching materials

Participants of this workshop will gain insights into integrating engagement factors of familiar game mechanics into teaching foundation programming constructs, build similar games based on our API, understand approaches to developing teaching materials based on the games and APIs, appreciate the advantages and challenges inherent to this approach, experience firsthand the process of designing and implementing their own teaching materials, and have free access to the source code, art, and audio assets of all materials. Participants will have the unique opportunity to play  with commercial-quality game demos while using basic programming constructs to build games that are fun and appropriate for all ages.

Intended audience

Game enthusiasts/educators of introductory programming classes (university and high school) with or without background in graphics or games. Participants: 20.

Rough Agenda

Topics Presenter
1. Introduction and overview Sung
2. Play with existing games Pace
3. Analyze the fun to understand the engaging characteristics Pace
4. Map fun to CS1/2 Programming Constructs Sung
… Break …
5. Group work: design own materials All
6. Group present: present designs All
7. Discuss pitfalls: What worked and what to avoid Nash
8. Question and Answer All


As shown in the top row of the above figures, our games are innovative twists on popular casual genres (e.g., a Breakout variant using the z-plane, or a Zuma variant with user-movable paths) designed for teaching specific CS1/2 programming concepts. The bottom row of the above figures shows our current efforts in enhancing the corresponding  educational versions for commercial release. We have developed custom APIs for each of these games that are readily accessible to new programmers based on the successful Game-Themed CS1/2 project [1]. Our philosophy of engaging and motivating students is similar to recent successes such as Alice [2] or Media Programming [3], but unlike those approaches we do not require adopters to replace their entire class materials as our collection of standalone games and APIs allow instructors to pick and choose contents to adopt while keeping the rest of their classes unchanged.

  1. Kelvin Sung, Michael Panitz, Cinnamon Hillyard, Robin Angotti, David Goldstein, and John Nordlinger. Game-themed programming assignment modules: A pathway for gradual integration of gaming context into existing introductory programming courses. IEEE Transactions on Education, 54(3):416 -427, August 2011.
  2. W. Dann, S. Cooper, and R. Pausch, Learning to Program with Alice. Upper Saddle River, NJ: Prentice Hall, 2006.
  3. M. Guzdial and B. Ericson, Introduction to Computing and Programming with Java, A Multimedia Approach. Prentice-Hall,