Gameful Approaches to Computer Science Education


Active Projects »

Gameful Computational Thinking

Inspired by CS for All?  Eager to contribute?  The Programming Systems Lab, led by Professor Gail Kaiser, is building a collaborative game-based learning and assessment system that infuses computational thinking in grade 6-8 curricula.  Near-term projects involve: Tooling Scratch with additional game design features Expanding a visual assessment language and authoring environment based in Blockly […]


Toward Trustworthy Mutable Replay for Security Patches

Society is increasingly reliant on software, but deployed software contains security vulnerabilities and other bugs that can threaten privacy, property and even human lives. When a security vulnerability or other severe defect is discovered, a software patch is issued to attempt to fix the problem – but patches themselves can be incorrect, inadequate, and break mission-critical […]


Dynamic Code Similarity

“Code clones” are statically similar code fragments dispersed via copy/paste or independently writing lookalike code; best practice removes clones (refactoring) or tracks them (e.g., to ensure bugs fixed in one clone are also fixed in others). We instead study dynamically similar code, for two different similarity models. One model is functional similarity, finding code fragments […]


HALO, or Highly Addictive sociaLly Optimized Software Engineering, represents a new and social approach to software engineering. Using various engaging and addictive properties of collaborative computer games such as World of Warcraft, HALO’s goal is to make all aspects of software engineering more fun, increasing developer productivity and satisfaction.

HALO represents software engineering tasks as quests and uses a storyline to bind multiple quests together – users must complete quests in order to advance the plot. Quests can either be individual, requiring a developer to work alone, or group, requiring a developer to form a team and work collaboratively towards their objective.

This approach follows a growing trend to “gamify” everyday life (that is, bring game-like qualities to it), and has been popularized by alternate reality game proponents such as Jane McGonigal.

These engaging qualities can be found in even the simplest games, from chess to tetris, and result in deep levels of player immersion. Gamification has also been studied in education, where teachers use the engaging properties of games to help students focus.

We leverage the inherently competitive-collaborative nature of software engineering in HALO by providing developers with social rewards. These social rewards harness operant conditioning – a model that rewards players for good behavior and encourages repeat behavior. Operant conditioning is a technique commonly harnessed in games to retain players.

Multi-user games typically use peer recognition as the highest reward for successful players. Simple social rewards in HALO can include titles – prefixes or suffixes for players’ names – and levels, both of which showcase players’ successes in the game world. For instance, a developer who successfully closes over 500 bugs may receive the suffix “The Bugslayer.” For completing quests, players also receive experience points that accumulate causing them to “level up” in recognition of their ongoing work. HALO is also designed to create an immersive environment that helps developers to achieve a flow state, a technique that has been found to lead to increased engagement and addiction.

Team Members


Prof. Gail Kaiser, kaiser [at]

Graduate Students

Jon Bell, jbell [at]
Swapneel Sheth, swapneel [at]




Jonathan Bell, Swapneel Sheth and Gail Kaiser. A Gameful Approach to Teaching Software Testing. Kendra Cooper and Walt Scacchi (eds.), Computer Games and Software Engineering, CRC, 2015.

At SSE 2011

At GAS 2011


World of Warcraft Massive Dataset