Assistant Professor of Computer Science
I am an assistant professor in the Computer Science (CSC) Department at NC State, where I direct 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).
2020-09-25: I gave a virtual seminar talk at the CMU Human-Computer Interaction Institute titled "The Politics of Programming: Towards Convivial and Liberatory Digital Tools." Check out the video recording!
2020-08-23: About two years ago, I was interviewed by Felix Holmgren of The Search Space podcast, and the recording is now available.
2020-07-28: Congratulations to POEM Lab members Chinmaya Dabral, Abhijeet Krishnan, and Aaron Williams for their authorship of two papers accepted to AIIDE 2020!
2020-05-06: I am co-chairing the inaugural Workshop on Human Aspects of Types and Reasoning Assistants (HATRA), affiliated with SPLASH 2020. Submit your talk abstracts!
2020-03-02: I am serving as the Playable Experiences Chair for AIIDE 2020!
2019-08-06: I received an NSF CAREER Award to support my work on Explorable Formal Models of Privacy Policies and Regulations!
2018-12-20: Congratulations to POEM Lab alum, Dr. Markus Eger, on his graduation from the Ph.D. program!
2018-09-18: I gave an invited talk at Strange Loop 2018 called Puzzles, Problems, and Programs.
2017-09-04: I gave a keynote talk at ICFP 2017 called Compositional Creativity.
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 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 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.