Debugging is a challenging task that can present a great deal of confusion and frustration to novice programmers. In general, Software Engineering and Computer Science education does not sufficiently address the challenges that students face when identifying bugs in their programs. To help students learn effective debugging techniques and to provide students a more enjoyable and motivating experience, we have designed the RoboBUG game. RoboBUG is a serious game that can be customized to with different game levels and programming language examples.
- Arrow Keys – Movement
- Left Control – Throw Active Tool
- Tab – Change Active Tool
The standard RoboBUG game is composed of five different levels, each of which requires the player to use a different debugging technique with C++ example source code. The game is extendable and new levels with source code written in different languages can be specified in XML.
The player has access to five debugging tools that are used at different points in the game.
In most levels, the bugcatcher tool is used when the player has determined the location of the bug. Throwing the bugcatcher at a bug kills it and allows the player to proceed to the next level.
The activator is used to toggle certain aspects of a level. For example, in the third level it toggles print statements.
The commenter is used to comment/uncomment blocks of source code.
The breakpointer is used to toggle breakpoints that are used in the debugger system.
The warper allows the player to leap from function to function and examine different regions of code. For example, in the fourth level, it allows the player to observe the code that has been commented out and identified as the faulty region.
Players are awarded points based on their efficiency at completing each level. Points are awarded at the end of a level based on how quickly the level was completed. Players lose points every time they throw a bugcatcher tool at a line of code that does not have a bug.
All artwork and sounds used in RoboBUG are open sourced and licensed under a Creative Commons Attribution-ShareAlike3.0 Unported License.
- Michael A. Miljanovic. “RoboBUG: A Game-Based Approach to Learning Debugging Techniques,” MSc Thesis, Computer Science, Apr. 2015. [supervisor: J. Bradbury]
Posters and Demos:
- Michael A. Miljanovic, Jeremy S. Bradbury. “RoboBUG: Learning Debugging with Games”, In Technology Showcase at the 24th Annual International Conference on Computer Science and Software Engineering (CASCON 2014), Markham, Ontario, Canada, Nov. 2014.