Simplifying Algorithm Learning Using Serious Games




Shabanah, Sahar Siraj

Journal Title

Journal ISSN

Volume Title



Data structures and algorithms are important foundation topics in computer science education. However, they are often complex and hard to understand. As a result, educational tools, such as algorithm visualization systems, are always needed to help students better learn and understand algorithms. The focus on graphics and sound instead of pedagogical aspects in the design of current algorithm visualization systems undermines effectiveness in teaching algorithms. In addition, most algorithm visualization systems lack features that encourage student engagement. This research addresses some required issues in creating algorithm visualization techniques by integrating learning theories and models in algorithm learning and by visualizing algorithms using computer games to more fully engage students in the algorithm learning process. We introduce a new algorithm visualization and learning approach, namely Algorithm Visualization using Serious Games (AVuSG), that uses serious computer games to visualize algorithms. It benefits from computer games popularity and engagement to motivate students who are learning algorithms. Moreover, it facilitates the students’ assessment using the winning-losing criteria of computer games without the need for external questions. The conceptual framework of AVuSG visualizes the algorithm to be learned using three forms of representations: Text, Flowchart, and Computer Game. Moreover, it defines three types of learning processes: Viewing, Playing, and Designing, which learners can use to engage with any of the three forms of the produced algorithm visualizations. Finally, it integrates learning theories with game design to introduce three learning models: Bloom Based, Gagne Based, and Constructivist Models, which can be adopted either by students to learn the algorithm or by the instructors to teach the algorithm depending on the learning objectives that they want to achieve. To demonstrate AVuSG framework, we have developed a software system called Serious Algorithm Game Visualizer (Serious-AV), which has a viewer and a designer for each algorithm representation form (Text, Flowchart, and Computer Game). Serious-AV is used on two levels: by the user interacting with the visualizations and by the developer creating these visualizations. The user views the algorithm text and flowchart using the Algorithm Text Viewer and the Algorithm Flowchart Viewer, respectively, and plays its game using the Algorithm Game Viewer. On the other hand, the developer uses the three development tools: Algorithm Text Designer, Algorithm Flowchart Designer, and Algorithm Game Designer to create each of those three algorithm representation forms. The Algorithm Game Designer is an integrated development environment tailored to create computer science educational games, namely an Algorithm Game, for the Windows platform to teach about specific algorithms and data structures. To visualize an algorithm, an Algorithm Game must have a game-play that simulates the behavior of the visualized algorithm and graphics to depict the features of its data structure. Several components and editors have been added to the Algorithm Game Designer to automate and simplify the visual development of algorithm games using as little code as possible. First, it is built on top of a game engine called SAVGEngine, which contains several modules that provide the basic functionality to the newly created game in addition to a repository of ready-to-use algorithm game components that can be altered and plugged in to the new game. Moreover, the Algorithm Game Designer includes an Algorithm Game Template, which is used as a blueprint in the creation of a new algorithm game and includes basic game classes that implement the algorithm game basic architecture. Furthermore, the Algorithm Game Designer contains five visual editors: Properties, Assets, Screens, Classes, and Graphic Items Editors for creating all game content visually with no code, using a flexible, user-friendly graphical user interface (GUI). Lastly, it takes advantage of current software tools and libraries, such as XNA Game Studio, .NET Framework, and Visual Studio Shell-Isolated Mode to simplify game design. Finally, several algorithm visualizations, including texts, flowcharts, and algorithm games prototypes, have been developed to validate the proposed approach and systems.



Algorithm visualization, Computer games design, Game engines, Game development technology, Algorithms learning, Learning theories