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. Starting Fall 2022, I will be at Northeastern, where you might have more luck finding me. If I manage to retain my NCSU login after I set up my new website, I'll link to it here directly.
While at NC State, I was 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).
07-07-2021: Our* CHI Play submission “Little Computer People: A Survey and Taxonomy of Simulated Models of Social Interaction” was accepted for journal publication! (*POEM Ph.D. student Sasha Azad is the lead author, and I am the senior author.)
07-02-2021: The CFP for PLIE '21 is live!
06-25-2021: I gave a keynote talk at PPIG entitled "Procedural Literacy: Communicating Systems through Games and Narrative."
04-30-2021: A new workshop that I proposed (along with Joe Osborn and Ian Horswill), called Programming Languages and Interactive Entertainment (PLIE), was accepted at AIIDE 2021!
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.