My research goal is to advance the way we interact with computers, taking inspiration from how humans communicate and collaborate. In particular, I'm interested in making computers capable of handling ambiguous inputs and specifications by leveraging prior knowledge and proactive interaction. That sometimes touches on program synthesis, but more fundamentally is about how to allow ambiguous yet effective communication between humans and computers, like people naturally do all the time. Recently, I've been also interested in the applications of that set of ideas in Education.
Generating Informative, Open-domain Clarification Questions Without Question Examples
Pragmatic Code Autocomplete
Dynamic Dispatch of Context-Sensitive Optimizations
Static Placement of Computation on Heterogeneous Devices
A Lossless Data Reduction for Mining Constrained Patterns in n-ary Relations