Please note: This PhD seminar will take place online.
Xuye Liu, PhD candidate
David R. Cheriton School of Computer Science
Supervisor: Professor Jian Zhao
Beyond writing code, programmers routinely move through several complementary tasks as they develop, refine, and share their work. These workflows typically involve recurring stages: understanding and documenting code, checking correctness and debugging, improving efficiency and scalability, and sharing results with others. Each stage has its own challenges: documentation often becomes outdated or inconsistent with evolving code, debugging can be time-consuming and opaque, performance improvements require balancing competing goals (e.g., speed, memory, and clarity), and communicating results usually demands extra manual effort.
This thesis investigates how human–AI collaboration can support programmers across four key stages of the workflow. To address these challenges, I begin by studying the needs and practices of programmers to understand where current tools fall short. Based on these insights, I design interactive systems that integrate with common tools such as computational notebooks and IDEs and operate on invariant components (code cells, execution outputs, text) so results remain compatible with common practices. Across the four stages, these systems provide context-aware code understanding across multiple cells, purpose-driven documentation from code and its execution results for different communicative purposes, presentation slides from code and results, and real-time, multi-dimensional code evaluation and optimization support during development, with authors remaining in control to inspect, edit, and refine outputs throughout. I conduct user studies and case studies to evaluate system usability and to assess how these approaches improve programmers’ productivity, confidence, and ability to share their work.