His interests include the design, analysis, and implementation of expressive programming languages, graphical representations of programs, and the visualization of computational processes. As a member of the MIT App Inventor development team and head of the Wellesley TinkerBlocks research project his current focus is to improve the expressiveness and pedagogy of blocks-based programming languages. He is co-author of the textbook Design Concepts in Programming Languages.