Resume-aware faculty matching

Find professors who actually fit you

Upload your resume. Four AI agents analyze your background, rank the faculty who fit, inspect their recent research, and help you draft outreach — grounded in their actual work, not templates.

Free to startNo credit cardCancel anytime
Top matches Balanced preset
Dr. Sarah Chen
Stanford · Interpretability · NLP
91
Dr. Marcus Holloway
MIT · Robotics · RL
84
Dr. Aisha Okonkwo
CMU · Fairness · HCI
82
Nova · Professor Researcher · re-ranking top 20…

Michelsen, James

· Clinical ProfessorVerified

University of California, San Diego · General Internal Medicine

Active 1992–2024

h-index10
Citations775
Papers175 last 5y
Funding
See your match with Michelsen, James — sign in to PhdFit.Sign in

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 access

    AI-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 access

    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. 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 access

    AI-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 access

    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. 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 access

    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. 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 access

    We 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

  • Nadia Polikarpova

    10 shared
  • James E. Patterson

    Brigham Young University

    6 shared
  • Shraddha Barke

    5 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)

    3 shared

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