Microsoft Research Blog

The Microsoft Research blog shares stories of collaborations with computer scientists at academic and scientific institutions to advance technical innovations in computing, as well as related events, scholarships, and fellowships.

Gulwani Wins 2014 Robin Milner Young Researcher Award

July 1, 2014 | Posted by Microsoft Research Blog

Posted by Rob Knies

Sumit GulwaniSumit Gulwani is a kind and accomplished person, the type who doesn’t simply display concern when he sees something amiss, but actually rolls up his sleeves and begins to fix it.

While his day job is as a Microsoft researcher, he also serves on the adjunct faculty in the Department of Computer Science and Engineering at the Indian Institute of Technology Kanpur and on the University of Washington Computer Science & Engineering affiliate faculty. But even those contributions pale in significance to his passion for empowering computer users and identifying better educational techniques to inspire those who might follow in his footsteps.

Given that, it’s hardly a surprise to read the glowing citation for his 2014 Robin Milner Young Researcher Award, recognizing outstanding contributions by young investigators in the area of programming languages. The recognition is presented annually by the Association for Computing Machinery (ACM) Special Interest Group on Programming Languages (SIGPLAN) and was announced in Edinburgh, U.K., in mid-June during that group’s 35th annual conference on Programming Language Design and Implementation.

The detailed and flattering citation is too lengthy to recount here, but here’s how it concludes:

“In summary, Dr. Gulwani is a highly motivated, creative, and inter-disciplinary researcher whose vision is to empower computer users around the world to be more productive and educated. His insights in using program synthesis to address problems in end-user programming and education will have deep and lasting influence.”

The remarkable thing about this praise is that it’s indisputably true. It’s happening already. You can hear a rare humility in his voice even as he discusses the award, named after the late Robin Milner (1934-2010), who made foundational contributions to the field of programming languages and went on to win the A.M. Turing Award in 1991.

'Honored and Humbled'

“I feel honored and humbled to receive such a prestigious award and would like to share it with all my collaborators, who were instrumental in what we have achieved until now,” Gulwani says. “I view this honor as not an individual accomplishment, but as a vote of confidence in the research that was accomplished. The two most instrumental factors were my workplace and my collaborators.

“I am also delighted and encouraged that the community recognizes the significance of the problems that I am working on and the cross-disciplinary techniques that I am leveraging. The award thus provides me with the political capital to inspire young researchers to carefully select problems that are well-motivated and not shy away from leveraging cross-disciplinary techniques.”

Gulwani, 35, will receive his Milner award in Mumbai, India, in January during the 42nd Symposium on Principles of Programming Languages, co-sponsored by SIGPLAN and the ACM Special Interest Group on Algorithms and Computation Theory. The prospect excites him.

“This is going to be quite special,” he says, “since I come from India and there is a chance that my parents might be able to see me receive the award.”

Gulwani has made pioneering contributions to the field of programming languages. His recognition that key connections span the fields of program verification and program synthesis has driven research that shows that imprecise human intent, in the form of examples, natural language, and other input methods, can be translated into intended programs by combining search over domain-specific languages with program-ranking techniques. Flash Fill, a feature in Excel 2013, is a prime example. It enables users to accomplish complex, repetitive programming tasks—without requiring programming knowledge.

Connecting with the Masses

“Having worked for years on developing program verification and synthesis techniques that might help software developers,” Gulwani explains, “I started feeling the need to directly connect with the masses in a manner that would leverage my technical expertise.

“Studying help forums made me realize the struggles of end users to accomplish various kinds of repetitive tasks—and the ease with which they express their intent using examples and natural language. This led to work on developing program-synthesis techniques to enable nonprogrammers—99 percent of computer users—to program repetitive tasks and thus enable them to more effectively and creatively leverage their computational devices.”

One future direction for such work, he says, is to develop general frameworks that enable easy development of domain-specific synthesizers such as Flash Fill.

Gulwani also is applying program-verification and program-synthesis techniques to developing intelligent tutoring systems for numerous subject domains.

“The work on computer-aided education,” Gulwani explains, “which involves automating repetitive tasks in education such as feedback generation and problem generation, is motivated by the opportunity to enable access to high-quality, interactive, and personalized education for every child—especially for that vast majority of children who do not have access to good teachers or cannot afford one-on-one human tutoring.”

The visionary components of Gulwani’s work were recognized recently by the editorial board of Communications of the ACM (CACM): Two of his recent papers on program verification and program synthesis appeared as CACM Research Highlights in the same issue, and a research summary of his work on computer-aided education will soon appear as a CACM article.

“There are intriguing connections between end-user programming and education,” Gulwani says, “and, as a result, techniques for democratizing programming have a lot in common with techniques for democratizing high-quality education in various subject domains. Realization of these connections shall inspire more programming-language researchers to contribute to computer-aided education.”