15 citations · 41 across the 10 of their papers we have counts for
10 papers
Kale: A Transformation-Safe Spreadsheet System
Michael Coblenz, Jacob Yim, Ajinkya Bokade +11
Spreadsheet formulas can refer to rectangular ranges of arbitrary size. When a user changes the structure of a referenced table, the spreadsheet system updates the references to re…
A Grounded Theory of Debugging in Professional Software Engineering Practice
Haolin Li, Michael Coblenz
Debugging is a central yet complex activity in software engineering. Prior studies have documented debugging strategies and tool usage, but little theory explains how experienced d…
Toward a Theory of Programming Language and Reasoning Assistant Design: Minimizing Cognitive Load
Michael Coblenz
Current approaches to making programming languages and reasoning assistants more effective for people focus on leveraging feedback from users and on evaluating the success of parti…
An Empirical Study of Protocols in Smart Contracts
Timothy Mou, Michael Coblenz, Jonathan Aldrich
Smart contracts are programs that are executed on a blockhain. They have been used for applications in voting, decentralized finance, and supply chain management. However, vulnerab…
Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage Collector
Michael Coblenz, Michelle Mazurek, Michael Hicks
Rust is a general-purpose programming language that is both type- and memory-safe. Rust does not use a garbage collector, but rather achieves these properties through a sophisticat…
Psamathe: A DSL with Flows for Safe Blockchain Assets
Reed Oei, Michael Coblenz, Jonathan Aldrich
Blockchains host smart contracts for crowdfunding, tokens, and many other purposes. Vulnerabilities in contracts are often discovered, leading to the loss of large quantities of mo…
User-Centered Programming Language Design: A Course-Based Case Study
Michael Coblenz, Ariel Davis, Megan Hofmann +7
Recently, user-centered methods have been proposed to improve the design of programming languages. In order to explore what benefits these methods might have for novice programming…
Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian
Michael Coblenz, Jonathan Aldrich, Joshua Sunshine +1
Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system…
PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design
Michael Coblenz, Gauri Kambhatla, Paulette Koronkevich +5
Programming language design requires making many usability-related design decisions. However, existing HCI methods can be impractical to apply to programming languages: they have h…
Obsidian: Typestate and Assets for Safer Blockchain Programming
Michael Coblenz, Reed Oei, Tyler Etzel +6
Blockchain platforms are coming into broad use for processing critical transactions among participants who have not established mutual trust. Many blockchains are programmable, sup…