< Portfolio

Reduct

Reduct is a puzzle game for teaching core programming concepts that I designed and developed at Cornell University. The project was advised by Andrew Myers, Erik Andersen, and Francois Guimbretiere. Reduct was published at CHI 2017 and was a finalist in the CHI 2017 Student Game Competition.

Unlike prior approaches largely based on body-syntonic reasoning, Reduct introduces a "comprehension-first" teaching strategy in which programming language semantics are decomposed into a series of gamified micro-tasks. Without textual explanation, the game teaches several core programming concepts, including functions, boolean expressions, equality, conditionals, and mapping functions over sets. It does so by gamifying reduction operations (code evaluation) and thereby requires players to build a fine-grained understanding of the execution semantics of programs.

Implementing the concreteness fading technique of the game DragonBox, a version of Reduct also fades the code representation during gameplay from a block-based graphical representation to the actual syntax of JavaScript ES6.

  • JavaScript ES6, HTML5
  • Graphic and sound design
  • Lab study