This project explores a unique and innovative approach to computer science education through the use of a 3D environmental puzzle game where players a unique programming language to manipulate game objects and navigate the game environment. The game is designed to teach foundational concepts of computer programming including abstraction, modularity, reusability, and debugging and is meant to do so through exercises that are closer to actual programming than block based approaches while still being accessible to novices. Through log data, surveys, expert reviews, and interviews, this project examines how players build implicit computer science knowledge through gameplay and how that gameplay relates to their performance on external transfer tasks. This work emphasizes the use of games as informal learning environments that are accessible and fun, and will provide game design metaphors that have been tested for their learning and engagement value that can be abstracted and embedded in different games. This project will also contribute patterns and an understanding of how people learn and engage in problem solving using concepts of abstraction, modularity, debugging and semantics. These outcomes will lead to advancement in knowledge in the learning sciences as well as the design of educational games that enrich STEM learning.

This Project is funded by the National Science Foundation. Arawrd ID: 1810972. For further information, see the NSF page.

For a full list of publications related to this research, see papers.

Research Questions

  • Can we reliably hand label patterns of gameplay that provide evidence of learning or misconceptions regarding the four CS constructs—abstraction, modularity, debugging and semantics—that learners exhibit playing May’s Journey?

  • How does learner’s implicit knowledge of these CS constructs change over time?
    • Are there common patterns in changes over time in implicit CS learning (i.e., player learning profiles)?
    • Are there group differences in implicit CS learning by gender or preparation level?

  • Is there a strong correlation between implicit learning measures and transfer of CS concepts: modularity, debugging, semantics, and abstraction? How do these correlations vary across elements of the game?

Learning Goals

  • Abstraction: Understanding of Object Oriented Design principles demonstrated through the ability to construct simple abstractions of classes and instances of classes.

  • Modularity and Reusability: Ability to abstract routines into modules that can be reused.

  • Semantics: Ability to differentiate between semantically correct and incorrect programs and identify expected output.

  • Debugging: Ability to solve programming logical and syntactical and run-time errors when they arise.

Non-Cognitive Learning Goals

  • Attitude towards programming: Demonstrate positive attitude towards programming.

  • Engagement: Demonstrate engagement in the game and solving puzzles as demonstrated by how much time and how many sessions students engage with the game.

  • Persistence: Demonstrate high level of persistence by not giving up on problems faced.


Northeastern University

Magy Seif El-Nasr (PI)

Chaima Jemmali

Sara Bunian

Erica Kleinman

Edge at TERC

Elizabeth Rowe

Mia Victoria Almeda

Advisory Board

Jennifer deWinter (Worcester Polytechnic Institute)

Marina Umaschi Bers (Tufts University)

Jill Denner (ETR)

Christopher Hoadley (New York University)

Eric Klopfer (MIT)

Karen Peterson (National Girls' Collaborative)

Kurt Squire (University of California, Irvine)