Exposing High School Students to Concurrent Programming Principles Using Video Game Scripting Engines
Michael Steffen, Joseph Zambreno · 2020
Abstract Exposing High School Students to Concurrent Programming Principles using Video Game Scripting EnginesIntroducing programming using an imperative language often requires a steep learning curve dueto the significant emphasis and corresponding time commitment placed on a particularlanguage’s syntax and semantics. We have developed a suite of video game scripting enginesfocusing on nurturing computational skills that can be explored in as little as one hour. Thesescripting engine run code developed by students to control four concurrent players on a team; upto four teams (four different code scripts) can play in a head-to-head competition. To achieve aquick learning curve, the scripting engine only supports a limited number of instructions todefine initial player qualities, movements, and game actions. Students are faced with thecomputational thinking challenge of mapping their game strategies into code. Successfulstrategies require teams to appreciate the complexities of concurrent programming to control allgame players simultaneously. We have observed that students quickly learn that writing code forall team players individually does not result in a competitive match, but requires a mixture ofcollaboration and parallel programming to be competitive in a short amount of time. The needfor more advanced control flow semantics are also motivated, since students must rewrite similarcode for performing similar routines through the game simulation. Our video game scriptingengines have been used in two high school outreach programs and results from these eventsindicate that our learning objectives were met and students were engaged in the activities theentire duration by modifying their code to be more competitive. We will also present lessonslearned from our first scripting engine (dodgeball) that went into creating our second engine(boomtown).