STRATEGY GAME PROGRAMMING PROJECTS Timothy Huang Department of Mathematics and Computer Science Middlebury College Middlebury, VT 05753 (802) 443-2431
[email protected] ABSTRACT In this paper, we show how programming projects centered around the design and construction of computer players for strategy games can play a meaningful role in the educational process, both in and out of the classroom. We describe several game-related projects undertaken by the author in a variety of pedagogical situations, including introductory and advanced courses as well as independent and collaborative research projects. These projects help students to understand and develop advanced data structures and algorithms, to manage and contribute to a large body of existing code, to learn how to work within a team, and to explore areas at the frontier of computer science research. 1. INTRODUCTION In this paper, we show how programming projects centered around the design and construction of computer players for strategy games can play a meaningful role in the educational process, both in and out of the classroom. We describe several game-related projects undertaken by the author in a variety of pedagogical situations, including introductory and advanced courses as well as independent and collaborative research projects. These projects help students to understand and develop advanced data structures and algorithms, to manage and contribute to a large body of existing code, to learn how to work within a team, and to explore areas at the frontier of computer science research. We primarily consider traditional board games such as chess, checkers, backgammon, go, Connect-4, Othello, and Scrabble. Other types of games, including video games and real-time strategy games, might also lead to worthwhile programming projects.