Assistant Professor of Computer Science
NOTE: As of June 30, 2022, I am no longer at NC State. All information on this site should be considered out of date. You can find (more) up-to-date information on my non-institutional website.
I direct research in the Principles of Expressive Machines (POEM) Lab. My research identifies bidirectional connections between logic in computer science (type systems for functional languages, logic programming, symbolic knowledge representation, and automated reasoning) and computational media (digital games, interactive storytelling, procedural generation, interactive virtual agents, social simulation).
While at NC State, I was an assistant professor in the Computer Science (CSC) Department at NC State. Before that, I was a postdoc with the Expressive Intelligence Studio at UC Santa Cruz, and I did my Ph.D. in the Principles of Programming Group at CMU.
See my publications.
I am broadly interested in how programming languages and executable logics can be used as tools for thought in a variety of creative and interactive domains. The premise on which my work hinges is that if we can better understanding the way that interactive systems support, augment, and improve cognitive processes, then we can empower increasingly diverse creators (storytellers, artists, sociologists, engineers, etc.) to achieve their most ambitious expressive goals.
Cognitive phenomena such as human social interaction, mental models of virtual worlds that are constructed through playful experimentation, and the creative process of defining and refining programs that generate stories and artworks, all have computational content that can be exposed through expressive language. Some of these languages, which I refer to broadly as "expressive machines," are recognizable as programming languages, whereas others may be better described as authoring tools, notations, or interfaces. What they have in common is that that humans can think with them and computers can run them as programs. I am increasingly interested in human-computer interaction (HCI) methodologies for better understanding the relationship between these expressive machines and their human cognition counterparts.
Because modeling human cognition has historically been a project under the purview of artificial intelligence (AI), some also consider my work to contribute to AI. (Please note that I do very little under the heading of "machine learning.")
For more information on current projects and opportunities for students, see the POEM Lab webpage.
Spring 2022: CSC 591/791 - Generative Methods for Game Design
Fall 2021: CSC 582/495 - Computational Models of Interactive Narrative
Spring 2020: CSC 484/584 (ugrad/grad) - Building Game AI
Fall 2019: CSC 503 (masters/PhD) - Computational Applied Logic
Spring 2019: CSC 582 (masters/PhD) - Computational Models of Interactive Narrative
Spring 2017, 2018: CSC 281 (undergraduate) - Foundations of Interactive Game Design
Fall 2016, 2017, 2018: CSC 791 (masters/PhD) - Generative Methods for Game Design
Outside of NC State, you may also be interested in the research of Anne-Gwenn Bosser, who led the charge on applying linear logic to interactive storytelling.