In this paper we argue for using a "Game First" approach to teaching introductory programming. We believe that concerns over whether an OO approach or a procedural approach should be used first are secondary to the course assignment and example content. If examples are not compelling, student interest often lags thus making the OO versus procedural argument moot. We believe that game programming motivates most new programmers. Compelling assignments mean that students are far more likely to learn because they are interested, and the visual component allows students to see mistakes in their code as manifested in the resultant graphics. We describe our experiences after redesigning and offering a new introductory computer science sequence using 2D game development as a unifying theme. We teach fundamental programming concepts via two dimensional game development in Flash and ActionScript during the first quarter, transition to C++ to solidify concepts and add pointers during the second quarter, then teach a multi-phase project based game approach using C++ and openGL (2D graphics only) during the third quarter. Our surveys show that this approach improved student understanding of all seven basic topics examined.
A games first approach to teaching introductory programming