Jupyter Notebook Corpus Study [paper]
In order to better understand how to support Jupyter Notebook users, we conducted an exploratory corpus study of 30 real-world notebooks. We classified notebooks based on application, structure, and types of data transformations. We found that notebooks are used in diverse ways, identifying opportunities to support notebook users through nonlinear structure. Class project for CSE 291-B00 at UCSD, with Qinshi Zhang.
Unfamiliar Abstractions [EPIC Advance poster]
Can we use program synthesis to produce program translations that enable users to understand code written in unfamiliar languages? Collaboration with Justin Lubin, Kevin Ye, Laila Walker, and Prof. Sarah E. Chasins.
NumPy Program Synthesis [PLDI 2024 paper] [github]
A program synthesizer that generates NumPy from Python for loops, intended to allow a broader audience of programmers to write higher-performance code. Collaboration with Justin Lubin, Jeremy Ferguson, Kevin Ye, and Prof. Sarah E. Chasins.
SEPO [poster] [paper] [github]
A symbolic execution engine for RISC-V assembly, used to output traces of CPU states and discover optimizing rewrites. Class project for CS 264 at Berkeley, with Sora Kanosue.
Flexible Extensions [github] [more info]
An automated system for requesting and granting extensions on programming assignments, aiming to reduce workloads for course staff in large computer science courses and improve student quality of life.
Teaming by Design [github] [website]
How can we improve experiences for students in design courses with team-based projects? We designed a data pipeline for processing surveys of team members and created visualizations for giving students actionable, data-driven feedback.