Meet Jocelyn Qiaochu Chen

“I am interested in bringing some of the discipline of programming languages to the messier world of modern AI systems.”

Donna McKinnon - 4 September 2026

What happens when AI stops just generating text and starts actually doing things? That’s the central question driving new assistant professor Dr. Jocelyn Qiaochu Chen’s research. 


Working at the intersection of programming languages, formal methods and natural language processing, Jocelyn, who is also a fellow with the Alberta Machine Intelligence Institute (Amii) and a Canada CIFAR AI Chair, explores how traditional coding principles — like logical proofs, rules and specifications — can guide AI models to produce more reliable code. In turn, she examines how modern AI is reshaping the way programmers build software and design coding languages.


Jocelyn joined the Department of Computing Science to be part of an environment that offers the perfect home for her interdisciplinary work, she says, giving her the freedom to advance foundational computer science alongside leaders in modern AI.


Welcome Jocelyn!


What brought you to the University of Alberta?

I was drawn to the Department of Computing Science because it is a place where I can do programming languages research while also being close to people working seriously on AI. My work often sits between areas, so I was looking for an environment where I would not have to choose only one box.


The connection to the Alberta Machine Intelligence Institute (Amii) was also a major factor. A lot of my recent work is about how AI systems interact with code, tools, proofs and data, so being in a place with both a strong computing science department and a broader AI community made a lot of sense to me.


Tell us a bit about your research and what you’ll be studying.

My research is in programming languages, formal methods and AI-assisted programming. I am interested in what happens when AI systems are not just generating text, but actually doing things: writing code, using tools, querying databases or helping with proofs.


That raises a lot of programming language questions. What should the interface between the human, the AI system and the tool look like? What information should be made explicit? What can we check automatically? When the system makes a mistake, can we understand where it came from?


I work on languages, specifications, synthesis and verification techniques that try to make these systems easier to reason about. In a sense, I am interested in bringing some of the discipline of programming languages to the messier world of modern AI systems.


What inspired you to enter this field?

I think I have always been drawn to the formal side of programming languages. I like the fact that we can take something as complicated as a program, define its behaviour precisely and then reason about it in a principled way.


What makes the area especially interesting to me is that the formalism is not disconnected from practice. A small choice in how we define a language, a specification or an analysis can change what tools are able to prove, detect or synthesize. So even though some of the work can look abstract, it often has very concrete consequences for how software systems are built and understood.


Tell us about your teaching. What courses will you be teaching, or what is your philosophy when it comes to teaching?

This fall I will be teaching CMPUT 644: Topics in Software Engineering: Formal Verification. The course will cover topics such as logic, program verification and proof assistants. The common thread across these topics is a very natural question: how do we know that a program does what we think it does?


I will also be teaching an undergraduate course on program analysis (CMPUT 416). I am excited about that because program analysis is a good example of how formal ideas in programming languages become practical tools: compilers, bug finders, security analyses and developer tools all rely on being able to approximate and reason about program behaviour.


When I teach, I try to help students connect formal ideas to concrete examples. I do not want these topics to feel like a collection of rules that appear out of nowhere. I want students to see why the rules exist, what they buy us and also where their limits are.


What are some of your favourite things to do outside of work?

I am still new to Edmonton, so some of my outside-of-work time is honestly just figuring out the city. I like reading, trying cafes and restaurants, and spending time with my family and my cat. I also enjoy climbing and I am hoping to get into a more regular routine here.


Is there anything else you’d like to share?

I am looking forward to meeting more colleagues and students, and to building my research group here at the U of A.