Rastislav Bodik
University of Washington, WA·Computer Science
People who use spreadsheets and other data-analysis tools constantly run into tasks their software cannot do. To go further they would have to write a program, which means designing an algorithm and expressing it in a programming language, skills most of them do not have.
- Fields
Computer Science
Education Research
- Topics
end-user programming
program synthesis
programming by demonstration
- Grants
- 1 known grant, last ended Sep 2026
What they work on
- Build a foundation for interactive program synthesis as an extension of solver-aided programming, defining a small set of primitive queries from which interactive tasks such as computing alternative explanations of a synthesized program can be implemented.
- Develop methods that let a synthesis tool explain the program it generated back to the user and ask targeted questions when it has generalized a demonstration incorrectly.
- Synthesize domain-specific programming primitives that are explainable, expressive enough to be useful, and gradually teachable, building on recent results in synthesis of language constructs.
- Support teachers in authoring microworlds, small self-contained sets of programming exercises, and evaluate the resulting tools in the team's existing data visualization and creative AI programming systems.
More about the research
This gap between what users want and what they can build is the programmability gap. This project aims to flatten the steep learning curve of programming by building tools that write programs alongside the user.
Why it matters
Spreadsheet users, data analysts and students often cannot automate the tasks they care about because programming is out of reach. Tools that generalize a demonstration into code, explain that code in plain terms, and ask clarifying questions could let these users solve their own problems, and could broaden participation in computing among people who have viewed programming as inaccessible. Teachers could also use the microworld authoring support to build exercises for novices.
Known grants
From NIH and NSF research grants. Labs often have other funding we can't see.
Closest labs
Haijun Xia
University of California-San Diego, CA·Computer Science
Analyze diagrams that programmers produce themselves to identify what qualities make graphics effective and directly manipulable for understanding and changing code.
Xiaokang Qiu
Purdue University, IN·Computer Science·Early-career
Develop program synthesis algorithms that infer objective functions, library models and task decomposition themselves, so programmers need not hand-craft them, enabling scalable library-based synthesis.
Swarat Chaudhuri
University of Texas at Austin, TX·Computer Science
Develop foundation model programming, which writes scientific hypotheses as programs combining symbolic rules with neural modules and foundation models, to extract interpretable concepts from images and video.
The school
University of Washington: 81 labs on PI Pages, $1.7B a year on research, 694 research doctorates a year.
Reach out
A start for your email. Fill in the brackets.