Michelsen, James
· Clinical ProfessorVerifiedUniversity of California, San Diego · General Internal Medicine
Active 1992–2024
About
James Michelsen is a Clinical Professor at UC San Diego School of Medicine, with a focus on improving access to primary care services and enhancing the quality of primary care. His work involves developing strategies to increase the availability and effectiveness of primary care delivery, contributing to the broader field of general internal medicine. His role emphasizes improving healthcare systems and patient outcomes through quality improvement initiatives and healthcare access enhancement.
Research topics
- Computer Science
- Programming language
- Human–computer interaction
- Engineering
- Software engineering
Selected publications
Validating AI-Generated Code with Live Programming
2024-05-11 · 24 citations
articleOpen accessAI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools are far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As a result, developers face a new challenge: validating AI’s suggestions. This paper explores whether Live Programming (LP), a continuous display of a program’s runtime values, can help address this challenge. To answer this question, we built a Python editor that combines an AI-powered programming assistant with an existing LP environment. Using this environment in a between-subjects study (N = 17), we found that by lowering the cost of validation by execution, LP can mitigate over- and under-reliance on AI-generated programs and reduce the cognitive load of validation for certain types of tasks.
Grounded Copilot: How Programmers Interact with Code-Generating Models
Proceedings of the ACM on Programming Languages · 2023 · 323 citations
- Computer Science
- Computer Science
- Software engineering
Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants—with a range of prior experience using the assistant—as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal : in acceleration mode , the programmer knows what to do next and uses Copilot to get there faster; in exploration mode , the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants.
Grounded Copilot: How Programmers Interact with Code-Generating Models
Zenodo (CERN European Organization for Nuclear Research) · 2023-03-09 · 1 citations
datasetOpen accessPowered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants---with a range of prior experience using the assistant---as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal: in acceleration mode, the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants. This artifact contains:<br> - The scripts to generate our plots - Detailed study information to re-run our user study - Livestreams that we observed and included in our dataset - Our codebook
Validating AI-Generated Code with Live Programming
arXiv (Cornell University) · 2023-06-15
preprintOpen accessAI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools are far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As a result, developers face a new challenge: validating AI's suggestions. This paper explores whether Live Programming (LP), a continuous display of a program's runtime values, can help address this challenge. To answer this question, we built a Python editor that combines an AI-powered programming assistant with an existing LP environment. Using this environment in a between-subjects study (N=17), we found that by lowering the cost of validation by execution, LP can mitigate over- and under-reliance on AI-generated programs and reduce the cognitive load of validation for certain types of tasks.
Grounded Copilot: How Programmers Interact with Code-Generating Models
Zenodo (CERN European Organization for Nuclear Research) · 2023-03-09
datasetOpen accessPowered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants---with a range of prior experience using the assistant---as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal: in acceleration mode, the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants. This artifact contains:<br> - The scripts to generate our plots - Detailed study information to re-run our user study - Livestreams that we observed and included in our dataset - Our codebook
Grounded Copilot: How Programmers Interact with Code-Generating Models
Zenodo (CERN European Organization for Nuclear Research) · 2023-03-09
datasetOpen accessPowered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants---with a range of prior experience using the assistant---as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal: in acceleration mode, the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants. This artifact contains:<br> - The scripts to generate our plots - Detailed study information to re-run our user study - Livestreams that we observed and included in our dataset - Our codebook
Grounded Copilot: How Programmers Interact with Code-Generating Models
arXiv (Cornell University) · 2022 · 23 citations
- Computer Science
- Computer Science
- Software engineering
Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants--with a range of prior experience using the assistant--as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal: in acceleration mode, the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants.
Digging for fold: synthesis-aided API discovery for Haskell
Proceedings of the ACM on Programming Languages · 2020 · 18 citations
1st authorCorresponding- Computer Science
- Computer Science
- Programming language
We present Hoogle+, a web-based API discovery tool for Haskell. A Hoogle+ user can specify a programming task using either a type, a set of input-output tests, or both. Given a specification, the tool returns a list of matching programs composed from functions in popular Haskell libraries, and annotated with automatically-generated examples of their behavior. These features of Hoogle+ are powered by three novel techniques. First, to enable efficient type-directed synthesis from tests only, we develop an algorithm that infers likely type specifications from tests . Second, to return high-quality programs even with ambiguous specifications, we develop a technique that automatically eliminates meaningless and repetitive synthesis results . Finally, we show how to extend this elimination technique to automatically generate informative inputs that can be used to demonstrate program behavior to the user. To evaluate the effectiveness of Hoogle+ compared with traditional API search techniques, we perform a user study with 30 participants of varying Haskell proficiency. The study shows that programmers equipped with Hoogle+ generally solve tasks faster and were able to solve 50% more tasks overall.
Program synthesis by type-guided abstraction refinement
Proceedings of the ACM on Programming Languages · 2019-12-20
preprintOpen accessWe consider the problem of type-directed component-based synthesis where, given a set of (typed) components and a query type , the goal is to synthesize a term that inhabits the query. Classical approaches based on proof search in intuitionistic logics do not scale up to the standard libraries of modern languages, which span hundreds or thousands of components. Recent graph reachability based methods proposed for Java do scale, but only apply to monomorphic data and components: polymorphic data and components infinitely explode the size of the graph that must be searched, rendering synthesis intractable. We introduce type-guided abstraction refinement (TYGAR), a new approach for scalable type-directed synthesis over polymorphic datatypes and components. Our key insight is that we can overcome the explosion by building a graph over abstract types which represent a potentially unbounded set of concrete types. We show how to use graph reachability to search for candidate terms over abstract types, and introduce a new algorithm that uses proofs of untypeability of ill-typed candidates to iteratively refine the abstraction until a well-typed result is found. We have implemented TYGAR in H+, a tool that takes as input a set of Haskell libraries and a query type, and returns a Haskell term that uses functions from the provided libraries to implement the query type. Our support for polymorphism allows H+ to work with higher-order functions and type classes, and enables more precise queries due to parametricity. We have evaluated H+ on 44 queries using a set of popular Haskell libraries with a total of 291 components. H+ returns an interesting solution within the first five results for 32 out of 44 queries. Our results show that TYGAR allows H+ to rapidly return well-typed terms, with the median time to first solution of just 1.4 seconds. Moreover, we observe that gains from iterative refinement over exhaustive enumeration are more pronounced on harder queries.
Magnetoacoustic sensor system and associated method for sensing environmental conditions
The Journal of the Acoustical Society of America · 2009-01-01
articleSenior author
Frequent coauthors
- 10 shared
Nadia Polikarpova
- 6 shared
James E. Patterson
Brigham Young University
- 5 shared
Shraddha Barke
- 3 shared
Clive J. Roberts
University of Nottingham
- 3 shared
Ranjit Jhala
- 3 shared
Martyn C. Davies
University of Sheffield
- 3 shared
Zheng Guo
Chongqing University
- 3 shared
Angus H. Forster
Vaxxas (Australia)
Labs
Boss LabPI
- Resume-aware match score
- Save to shortlist
- AI-drafted outreach
See your match with Michelsen, James
PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.
- Free to start
- No credit card
- 30-second signup