PLATEAU Keynote: Usability Design Space in Programming by Examples
Programming by Examples (PBE) involves synthesizing intended programs in an underlying domain-specific language (DSL) from example-based specifications. PBE is a computationally hard problem and has led to many domain-agnostic algorithmic advances. However, practical deployment of PBE systems also necessitate innovations in the usability space.
An important usability dimension is efficiency. We leverage specialized search algorithms that incorporate domain-specific knowledge and tactics, which bias the search towards common and simple tasks, to facilitate real-time feedback. A second usability dimension relates to intention. We leverage machine learning based program ranking techniques to guess an intended program from fewer examples. For some task domains, we even predict the user’s intent from 0 examples, i.e., from simply the input data without requiring the user to provide any outputs. We also leverage affordances such as auto-complete, highlighting, and clicking (whenever applicable) to make it easy for the user to provide examples. A third usability dimension relates to debuggability. We leverage active-learning techniques based on clustering inputs and synthesizing multiple programs, to facilitate a specification-refinement dialog with the user.
In this talk, I will discuss and illustrate these usability innovations using multiple PBE technologies for data manipulation domains. These technologies, which have been released inside various Microsoft products, are useful for data scientists who spend 80% of their time wrangling data. The Microsoft PROSE SDK allows easy construction of such technologies.
Sumit Gulwani leads a research & engineering team at Microsoft that develops program synthesis technologies for data wrangling and incorporates them into real products. His programming-by-example work led to the Flash Fill feature in Microsoft Excel used by hundreds of millions of people. He has published 110+ papers in top-tier conferences/journals across multiple computer science areas, and delivered 30+ keynotes/invited talks at various forums. Sumit was awarded the ACM SIGPLAN Robin Milner Young Researcher Award in 2014 for his pioneering contributions to end-user programming and intelligent tutoring systems. He obtained his PhD from UC-Berkeley, and was awarded the ACM SIGPLAN Outstanding Doctoral Dissertation Award. He obtained his bachelor’s degree from IIT Kanpur in 2000, and was awarded the President’s Gold Medal.