I study how people can think critically with AI.

I'm a 3rd year PhD student in the Dynamic Graphics Project (DGP) Lab at the University of Toronto, advised by Prof. Michael Liut and Prof. Carolina Nobre.

AI can help someone reason better, or it can just do the reasoning for them. I run studies to figure out when each one happens, then build interfaces and workflows that help people keep thinking for themselves. I mostly work on complex knowledge work and on education, especially computing education. My work usually appears at HCI venues like CHI, IUI, and CHIWORK, and CS education venues like AIED, ITiCSE, and SIGCSE.

If any of this overlaps with what you’re thinking about, I’d love to chat. Say hi at harry[last_name]@cs.toronto.edu. Away from the screen I’m usually travelling, biking, or on a trail somewhere (click my photo).

News

  • Sep 2026

    My first-authored paper, a longitudinal study of student and LLM code in introductory programming, has been accepted to the 26th Koli Calling International Conference on Computing Education Research, along with my Doctoral Consortium paper on what is left for students to learn when an AI agent can write their code.

  • Apr 2026

    Our workshop proposal on AI Disclosure has been accepted for the 2026 ACM Conference on Fairness, Accountability, and Transparency (FAccT).

  • Mar 2026

    My co-authored papers on CS Education and AI have been accepted to the 31st Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE).

  • Feb 2026

    My first-authored paper on AI disclosure and attribution in programming education has been accepted to the CHI 2026 Workshop on Understanding and Engaging Critical Resistance to AI in Education.

  • Jan 2026

    My first-authored paper on Reflexis, a system that operationalizes positionality and provenance to support deep collaborative analysis, has been accepted for publication, see you in Barcelona!

  • Dec 2025

    My first-authored paper on LLM-enabled Systematic Literature Review Assistant (ARC) has been accepted for publication, see you in Cyprus!

Selected Research

AI Disclosure and Attribution

Researchers cite the work they build on. It's just part of how we write. So when AI became an everyday part of learning, I kept wondering: could students acknowledge it the same way? I brought the idea to Jessica, and we started digging into it together. But a disclosure is a strange thing to ask for. What does “I used ChatGPT” actually tell an instructor about how a student thought? Do students want to write one, do instructors want to read one, and if being honest has a cost, who ends up paying it?

Mixed-Initiative Systems for Qualitative Analysis

Qualitative analysis means sitting with your data: rereading transcripts, moving quotes around, arguing with collaborators about what someone really meant. The tools never fit that for me. Spreadsheets do too little, and professional tools take forever to learn and push you into workflows that don't feel like your own. AI can now code a whole dataset in minutes, but then whose analysis is it? What if AI helped around the interpretation, organizing material and surfacing what you missed, and left the meaning-making to you? ScholarMate tries this for one person making sense of their material, and Reflexis brings it to teams working through disagreements.

Designing AI Support for Systematic Literature Reviews

A systematic review is meant to be the careful, reproducible way to read a field. Then I tried doing one on AI, and the field kept growing while we were still screening. Most of the work is toil: abstract after abstract, the same inclusion criteria applied over and over. That sounds like a perfect job for an LLM. But the whole point of a systematic review is that every decision can be traced and checked later. So which parts can a tool take over, and which parts should stay with the researcher?

Improving Student-AI Interaction Through Pedagogical Prompting

Ask an AI for help on a CS1 assignment and you'll get a polished, correct solution in seconds. That's handy if you already know how to code. If you're still figuring out how a loop works (or learning anything, really), a perfect answer doesn't teach you much. With collaborators at CMU and the University of Michigan, we started treating prompting as a skill students can learn, part AI literacy and part metacognition. Students practice predicting what the model will do before they ask, then write prompts that get them guidance instead of finished code. We later tested this in an RCT in a real CS1 course.

Transparency and Explainability in AI Coding Agents

Coding agents can now change a lot of code in one go, but they rarely tell you what they were thinking. I use Codex and Claude Code on large projects, and every so often I notice the agent's picture of the codebase is quite different from mine. Once, an agent set out to edit a file that wasn't even in use. If I stop checking, how long before my own picture of the code starts to drift too? CopilotLens tries to make that gap visible. It shows the plan behind an agent's changes and the parts of the codebase that shaped them, so you can check its reasoning instead of just accepting the diff.

Classroom Deployment of an AI Programming Assistant for Novices

What happens when 700 students in an intro programming course get an AI assistant for a whole semester? I helped deploy CodeAid, which was designed to help without handing out solutions, and students used it about 8,000 times. Between those logs, student surveys, and interviews with educators, we could see where the AI kept novices reasoning and where it let them skip the reasoning entirely.