A case study approach for teaching design patterns through computer game programming: tutorial presentation

  • Authors:
  • Paul Gestwicki

  • Affiliations:
  • Ball State University

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2008

Quantified Score

Hi-index 0.03

Visualization

Abstract

This workshop presents an approach for teaching design patterns through computer game programming. In the workshop, we will begin by discussing the fundamental aspects of game engine software, including rendering models, animation techniques, and collision processing. Then we will explore how design patterns can be applied to manage the complexity of game software development. This case study approach has been successfully used with undergraduate students ranging from sophomore to senior standing. Among these students, none had any formal introduction to game programming, and only one had prior exposure to design patterns. A study conducted eight months after the students completed the course found that, although none of the students were developing games, all of them were using design patterns. These results suggest that our approach positively impacts students' learning; unfortunately, our sample size was too small for statistic significance. The specific case study we will use is EEClone, a simple arcade-style computer game that was designed to demonstrate design patterns for object-oriented programming. The specific patterns reified in EEClone include the State, Facade, Observer, Strategy, Singleton, and Visitor patterns. It is important to note that the design patterns are not "forced" into this context: they emerge from a disciplined software design process. They complement the domain-specific concepts such as the main game loop, active rendering, sprite animation, collision processing, controller management, and audio playback. The pedagogic motivation and results of this approach have recently been published in the Journal on Educational Resources in Computing [1]. This workshop provides an interactive forum for educators to learn about our approach and its application in the classroom.