Research has demonstrated that learning to program in context, especially a context that students are familiar with, increases student motivation. This project explores the context of traditional board games. Unlike modern computer games, board games are inherently discrete. The board has a fixed number of allowed positions for the game pieces and each player performs a mental search through a finite number of possible moves to decide the next action. Designing an automated player strategy for a board game provides a natural context for basic data structures and search algorithms covered in CS 1 and CS 2.
For this project, researchers are developing software scaffolding to allow students to implement computer-based versions of actual board games. The game engines are responsible for the graphical user interface, rule enforcement and round-robin calling of the individual player strategies. Students design and implement player strategies to compete with a basic strategy provided by the instructor or more advanced strategies provided by other students. Three game engines are being developed in both Java and Python programming languages. Collaborations include a research university, a liberal arts college and an institute of technology. At least four hundred students are expected to use the materials during the project. Use beyond the project lifetime is expected because materials will be available on the Web and workshops are provided in the final project year to help faculty at other institutions adopt the materials. Project goals including student motivation and performance are evaluated by an evaluation team including three external experts.