Michael Coblenz

Assistant Professor, Computer Science & Engineering, University of California San Diego

prof_pic.jpg

mcoblenz (at) ucsd.edu

Office: CSE 3246

I am recruiting PhD students this application cycle. Applications are due December 20, 2023. I’m looking for prospective students who want to change the world by making it easier for many kinds of programmers and software engineers to create high-quality software at lower cost. I’m also interested in applying the principles of human-computer interaction, software engineering, and programming languages to help address the climate crisis. Can we build tools to make climate scientists’ jobs easier? Can we create formal tools to help policymakers to develop and enforce policies that make the world a better place?

As of Fall 2023, I have several projects I’d love to work with students on listed below. I also invite students to propose their own ideas! If you are interested in working on a PhD with me, your application should mention my name, what kind of work you’d like to do, and why that work excites you. The strongest applications come from students who have some relevant academic research experience. If your intended research focus relates to artificial intelligence, you should look for a different advisor, as AI is not my primary area of interest. I like to focus on approaches that have provable correctness properties.

  • The Kale project explores how we could make spreadsheets safer for all kinds of users, avoiding large classes of spreadsheet bugs. At the same time, it aims to empower data scientists to leverage the power and convenience of spreadsheets in their analysis work.
  • Web sites expose services via REST APIs. These APIs are designed according to various guidelines, but no one knows how the guidelines actually relate to API quality! I’m working to understand which guidelines are worth following and develop tools to help developers follow guidelines that result in better API quality.
  • Climate change is a major crisis of our time. I’m starting a new project to empower other kinds of scientists and engineers fight climate change by making it easier for them to write their programs. I’m also interested in how we might use tools from programming languages research to express, reason about, and enforce regulations that govern the environment.
  • Debugging is central to software engineering, but I don’t think we do a very good job of teaching how to debug. I’m interested in understanding how professional software engineers debug large programs and how we can teach students to work effectively on large codebases.
  • Rust is a promising programming language that provides strong safety benefits, but it can be hard to learn. I’m interested in making it easier to learn and use.
  • I’d like to develop theories that explain how people think when they are programming. Why do people (including myself!) write buggy code? How can we deepen our understanding of human cognitiion in a way that helps us create better ways of thinking about software?

I created PLIERS (Coblenz et al., 2021) (Programming Language Iterative Evaluation and Refinement System), which is a method of integrating user-centered design into the process of designing programming languages. I use this approach to create concrete programming languages and then evaluate how the new languages affect people’s ability to write software. For example, I created Obsidian, a new smart contract language that uses a strong type system to rule out critical classes of bugs at compile time.

I completed my Ph.D. in the Computer Science Department at Carnegie Mellon University. I was a student of Jonathan Aldrich and Brad A. Myers. I also collaborated closely with Joshua Sunshine. Then, I was a Basili postdoctoral fellow at the University of Maryland. I worked with Michael Hicks, Michelle Mazurek, and Adam Porter.

Before that, I spent eight years as a full-time software engineer on the iWork team at Apple, focusing on Numbers. I worked on versions for macOS, iOS, and iCloud. If you’re still using some other spreadsheet app, give Numbers a try!

For reference, I have posted my materials for my job search in 2022: CV, research statement, teaching statement, and diversity, equity, and inclusion statement.

news

Jul 1, 2022 I started a new position as an Assistant Professor at UC San Diego.

selected publications

  1. ICSE
    Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage Collector
    Michael Coblenz, Michelle L. Mazurek, and Michael Hicks
    2022
  2. TOCHI
    PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design
    Michael Coblenz, Gauri Kambhatla, Paulette Koronkevich, and 5 more authors
    ACM Transactions on Computer-Human Interaction 2021
  3. OOPSLA
    Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian
    Michael Coblenz, Jonathan Aldrich, Brad A. Myers, and 1 more author
    2020
  4. TOPLAS
    Obsidian: Typestate and Assets for Safer Blockchain Programming
    Michael Coblenz, Reed Oei, Tyler Etzel, and 6 more authors
    ACM Transactions on Programming Languages 2020
  5. ICSE
    Glacier: Transitive Class Immutability for Java
    Michael Coblenz, Whitney Nelson, Jonathan Aldrich, and 2 more authors
    2017