My research aims to democratize programming for end-users and students. Towards this goal, I develop systems using program synthesis techniques to make programming more accessible to end-users, students, and even programmers. Some research projects that I am actively working on include:
Data Wrangling for End-Users
These systems help data scientists and end-users perform data wrangling (cleaning, transformation, and integration) tasks easily using input-output examples, without writing complex programs/scripts.
Semi-supervised learning of data transformations from both input-output examples and the input data. 1000x faster than FlashFill and learns richer transforamtions!
Semantic Data Type (Date, Name, Phone Numbers, Address etc.) Transformation in Excel. Probabilistic Learning to handle noisy and inconsistent data.
Help end-users perform string manipulation tasks in Microsoft Excel using input-output examples.
- Publications [CAV12], [VLDB12], [CACM12], [CAV15]
- Press [MIT News], [CNET], [CNN Money], [Wired], [More]
- Demo Video1, Video2, Video3, Try it out in Excel 2013!
Program Synthesis for Education
Help beginner programmers with automated feedback about the common errors in their code.
Help programmers write data-structure manipulations using box-and-arrows diagrams of input-output state configurations.