I study how people can think critically with AI.

I'm a 2nd 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 sharpen how someone reasons, or quietly do the reasoning for them — so I run empirical studies to find where that line falls, then build interfaces and workflows that scaffold judgment, reflection, and responsibility. Most of my time goes to two settings where that line matters most: complex knowledge work and education (especially in computing). My work appears usually 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

  • 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 has 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!

  • Oct 2025

    Our work on LLM-enabled Hierarchical Academic Paper Reader has been accepted for publication.

Selected Research

AI Disclosure and Attribution in Programming Education

This one started as a conversation with Jessica: AI use is becoming ordinary in education, so... what if students disclosed it the way researchers cite the work they build on? Which opens the real questions — how do students and instructors actually read an AI disclosure, do they even want one, and what can it honestly tell you about a student's thinking?

Mixed-Initiative Systems for Qualitative Analysis

Hours deep in thematic analysis — my own transcripts and my collaborators' — I kept hitting the same wall: spreadsheets do too little, professional analysis tools take too long to learn and only do what they were built to do. So I started wondering... what would AI help look like if it helped you organize, compare, and question your interpretations, without coding your data for you?

Designing AI Support for Systematic Literature Reviews

This one began mid-systematic-review, watching the AI literature grow faster than any team could hope to screen it. Somewhere in the batch-screening I caught myself asking: how much of this could a tool actually take on — faster, more accurate — without quietly giving up the traceability and rigor that make a review systematic in the first place?

Improving Student-AI Interaction Through Pedagogical Prompting

AI hands you a polished solution in seconds — which is exactly the problem when you're trying to learn. The skill students actually need is metacognitive: knowing what the AI will do before you even ask. With collaborators at CMU and the University of Michigan, I'm building a scalable tutoring system that teaches students to write pedagogically sound prompts... asking for the help that helps them learn, not just `help me solve this problem`.

Transparency and Explainability in AI Coding Agents

Months into using Codex and Claude Code on large projects, an agent once told me the file I'd asked it to change was "apparently not in use" (?!). Moments like that expose the gap between the agent's mental model of the codebase and mine — a gap that widens as projects grow with AI and we understand less and less of our own code. Can coding tools make that gap something you can actually inspect?