Programming Languages for Accessible and Inclusive Tools
@ UC Berkeley EECS
PL for Social Good
We invent usable programming tools to help teams working for social good—social scientists, journalists, lawyers, domain experts focused on marginalized groups. (Working for social good and struggling to write code or process data? Get in touch!)
We combine techniques from Programming Languages and Human-Computer Interaction to make programming languages and programming tools that work better for coders and non-coders alike.
New paper at FAccT '23
Hellina published the first paper of her Ph.D. journey at FAccT 2023! Check out Co-Designing for Transparency: Lessons from Building a Document Organization Tool in the Criminal Justice Domain.
Two papers at CHI '23 ⛵
Parker and Eric each published the first papers in their Ph.D. journies! Check out A Need-Finding Study with Users of Geospatial Data and Understanding Version Control as Material Interaction with Quickpose.
Sarah E. Chasins
Hellina Hailu Nigatu
David Minh-Duy Cao
Energy & Resources Group Ph.D. Student, EECS M.Sc.
Undergraduate Student Assistant
A Need-Finding Study with Users of Geospatial Data
A contextual inquiry study exploring the challenges users face in finding, transforming, analyzing, and visualizing geospatial data, drawing on participants from Earth and climate science, the social sciences, and data journalism.
DOT: Building a Document Organization tool for the Criminal Justice Domain
A cross-discipline co-design project to build a Document Organization Tool for public defenders and investigative journalists working on police use-of-force and misconduct data disclosures.
Enabling API Upgrades
Program transformation tooling for library developers could enable them to ease the upgrading burden when introducing API breaking changes for their downstream users.
Entity Extraction From Police Records
Program synthesis tool to match documents based on locational similarities.
FLOR: Fast Low-Overhead Recovery
A hindsight logging toolkit for model training.
Programming-by-demonstration tool for automating repetitive interactions with webpages. Designed for non-programmers from the social sciences.
How Statically-Typed Functional Programmers Write Code
A grounded theory of how statically-typed functional programmers write code, covering domain modeling, type construction, focusing techniques, exploratory strategies, mental models, and expressions of intent. Ongoing work: collecting programmers’ fine-grained edit histories and developing analyses to parse and understand their behaviors over time.
Understanding Version Control as Material Interaction with Quickpose
A version control tool for creative programmers. We used this tool to study how people use different versions of their programs in their process—navigating between, annotating and arranging, and backtracking to previous versions of their programs.