Algogame: A Customizable Educational Game For Recursive Algorithms
Recursion is a core introductory computer science concept (Astrachan, 1994) that has been difficult for students to grasp (Haynes, 1995). Online games like LightBot and Cargo-Bot have been shown to help students improve their understanding of recursion (Gouws, Bradshaw, and Wentworth, 2013) via their computational thinking and execution of algorithms embedded in the game. Researchers have lauded these video games for helping students visualize code execution (Rose, Habgood, and Jay, 2017), or similar software for improving students’ intuition of recursion (Dann, Cooper, and Pausch, 2001). While these applications aid student learning, they lack the ability to improve the students’ skill to trace a recursive function (Tessler, Beth, and Lin, 2013). Another common issue is the inability to create custom levels for classroom implementation. When utilizing a game, instructors may be forced to adjust their lesson plan to effectively leverage these games in their courses, which creates additional barriers for their use in the classroom (Kirriemuir & Macfarlane, 2004).
We aim to resolve these issues by building a new game that leverages mechanics found in games like Cargo-Bot/Lightbot, which we’ll refer to as Algogame. Algogame is specifically targeted to help students understand recursive backtracking and allows others to create custom levels via text files. We came to the conclusion to focus on recursive backtracking from a pilot survey we conducted with 30 computer science students. Part of the survey, which we did before development started, consisted of a four-point likert scale item which asked students about their confidence with respect to a variety of algorithms. Aside from the four confidence levels, we provided students with an additional option for each algorithm that students could choose when they were unfamiliar with an algorithm. Being unfamiliar with an algorithm differs from having low confidence in an algorithm they recognize. We visualized the data from this question, and found that the algorithms for dynamic programming and Kruskal’s minimum spanning tree were the ones that students expressed the lowest confidence levels for.
Back to list of abstracts
From that analysis, we decided to focus on recursive backtracking, which is a fundamental portion of the two aforementioned algorithms. We started our design of Algogame by creating multiple paper prototypes to test the avatar’s movement/commands in the environment that would make it most amenable to common recursive patterns. We also prototyped different animations to help better explain recursion, such as animating the program stack during execution (Haynes, 1995, Chaffin et al, 2009). Once the initial design was finalized, we documented the project’s details and managed it via an online repository. To help with the slow pace and turnover that occurs with developing games in an academic setting, we placed extra attention on documentation of our process. Algogame has also included additional information for instructors on how to use and adjust the application for their classroom. We hope that by discussing the game’s design and development in more detail, we could generate insight and excitement in helping build more games that can be updated by multiple stakeholders