Research Mission. To democratize programming, especially to empower scientists, social scientists, journalists, data scientists, and other non-traditional programmers. To make approachable programming tools that help practitioners to (i) reach correct programs and (ii) understand, extend, and trust those programs. To make programming a path to a more informed and evidence-driven society—not just a way to get wrong answers faster.
Projects. For details of my lab's recent and ongoing research, see: Programming Languages for Approachable and Inclusive Tools (PLAIT) . You can also check out the research statement.
Recent Programming Tools
Cartokit is a programming tool for making interactive maps. Cartokit looks like a standard Geographic Information System (GIS), but behind the scenes it also writes a program. The program can automatically (and repeatably) generate the same map that the user constructs by hand in the Cartokit editor. This is a "direct manipulation programming tool," a tool in which users write programs by using the familiar direct manipulation interactions they use in traditional UIs. The end result is a readable JavaScript program that users can run, adapt, and deploy as desired.
Honeybee is a program generation tool for experimental biologists. The user provides a high-level description of (i) what they did in the lab, (ii) the datasets that their in-lab activities produced, and (iii) the analysis or visualization they want to produce. Honeybee asks a series of questions, then uses the answers to automatically write the data analysis program. The end result is a Python program. Honeybee currently has a special focus on genomics data, but we are actively expanding it to a broader range of applications.
To learn about more of our recent projects and tools, see: Programming Languages for Approachable and Inclusive Tools (PLAIT).
Students
Alums
Jacob Yim (MSc)
Jeremy Ferguson (MSc)
Dhanya Jayagopal (MSc)
Rebecca Hicke (undergraduate)
Xiaorui Liu (undergraduate)
Laila Walker (undergraduate)
Angela Bi (undergraduate)
Pragya Kallanagoudar (undergraduate)
Rajavi Mishra (undergraduate)
Kevin Ye (undergraduate)
Collaborators Outside Computing.
My lab's work is only possible because of close collaborations with our partners from outside of computing. This list will be incomplete, but we'd especially like to thank (in alphabetical order):
Service
OOPSLA 2026 Program Committee (Associate Chair)
POPL 2025 Program Committee
PLATEAU 2025 Co-Organizer
PLDI 2024 Program Committee
PLATEAU 2024 Co-Organizer
PLATEAU 2023 Co-Organizer
WICSE 2023 Faculty Mentor
PL+HCI “Swimmer” School 2022 Co-Organizer
PLDI 2022 Program Committee
PLATEAU 2021 Co-Organizer
SRC Grand Finals 2021 Reviewing
OOPSLA 2021 Review Committee
PLDI 2021 SRC Co-Chair
ASPLOS 2021 Program Committee
PL+HCI “Swimmer” School 2020 Co-Organizer
IPA 2020 Program Committee
HATRA 2020 Review Committee
PLATEAU 2020 Co-Organizer
OOPSLA 2020 Review Committee
PLDI 2020 SRC Co-Chair
PLDI 2020 External Review Committee
MAPL 2020 Program Committee
PLATEAU 2019 Co-Organizer
SPLASH 2018 SRC Reviewer and SRC Judge
PLATEAU 2018 Co-Organizer
SNAPL 2017 Submissions Chair
PLATEAU 2017 Program Committee
PLATEAU 2017 Co-Organizer