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 interests span programming languages, human-computer interaction, automated reasoning, and computational media.
See my publications.
I am broadly interested in using formal reasoning tools to interface with (amplify, analyze, or augment) human cognition, including social reasoning, creativity, and communication. Like poems (the namesake of my lab), my projects generally explore the relationship between syntax and semantics, combining formal structure with playfulness, the affordances of human inference and emotion, and social context. Examples include generating stories and conversations with linear logic, using dynamic epistemic logic to give a theory of mind to agents that can play communicative, social games, using constraint solving and static analysis to generate games that communicate specific ideas through interactive processes, examining interfaces to virtual worlds through the lens of programming languages, generating puzzle game levels that facilitate robust mental models, and developing a logic-based framework for interactive narrative authoring with autonomous virtual characters. My mission is to understand the computational content of human communication and reasoning and use this understanding to enable more diverse programmers to achieve more diverse goals.
For more information on current projects and opportunities for students, see the POEM Lab webpage.
Please read this before you email me.
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.