I’m Joe Osborn, and I do research in video game design and artificial intelligence: using AI to help make better designs, and building AI agents which can learn game design information from play. I teach courses in AI, computational logic and software verification, and (soon) software engineering and game development.

Schedule and Classes

Please feel free to come by my office hours in Edmunds 113 (or on Zoom) with questions about my classes, about general topics in CS, or about possible research work together. I’m also happy to schedule specific meeting times outside of office hours for non-class-related questions.

Office Hours


Semester Courses
Fall 2021 CSCI 54 PO
  CSCI 190 PO
Spring 2021 CSCI 54 PO
  CSCI 181G PO
Fall 2020 CSCI 54 PO
  CSCI 151 PO
  CSCI 190 PO
Spring 2020 CSCI 54 PO
  CSCI 51a PO
Fall 2019 CSCI 151 PO
  CSCI 51a PO
Spring 2019 Family leave!
Fall 2018 CSCI 151 PO
  CSCI 54 PO

About Me

I believe that being able to critique and author processes is a key literacy—human-authored computational processes are implicated in nearly every social space and interaction, and it is vital to understand these processes at a deep level and, sometimes, to circumvent or subvert them. Computer science pedagogy plays a central role in preparing students to recognize and critique computational systems, in addition to its traditional role in teaching students to design and implement new computational systems (an important creative and technological pursuit on its own).

My background is in fine arts (I hold an MFA in game design from the University of Southern California) and computer science (my PhD is from UC Santa Cruz’s Expressive Intelligence Studio). I also have some software engineering training from my undergrad (a B.S. in Software Engineering at Rochester Institute of Technology, as well as a year working at Vicarious Visions, a videogame developer in central New York).

My research connects these two interests—interactivity and theoretical computer science—with the hope that it will make both more accessible to non-specialist programmers. I run the FAIM Lab to bring together students with an interest in the analysis and creation of interactive media.