- Software Engineering Research
- Force Microscopy Techniques and Applications
- Drug Solubulity and Delivery Systems
- Software Engineering Techniques and Practices
- Model-Driven Software Engineering Techniques
- Logic, programming, and type systems
- Software System Performance and Reliability
- Inhalation and Respiratory Drug Delivery
- Formal Methods in Verification
- Analytical Chemistry and Chromatography
- Teaching and Learning Programming
- Analytical Methods in Pharmaceuticals
- Adhesion, Friction, and Surface Interactions
- Mechanical and Optical Resonators
- Granular flow and fluidized beds
- Advanced Drug Delivery Systems
- Software Testing and Debugging Techniques
- Crystallization and Solubility Studies
- Electrokinetic Soil Remediation Techniques
- Electrostatics and Colloid Interactions
- Explainable Artificial Intelligence (XAI)
- Integrated Circuits and Semiconductor Failure Analysis
- Neural Networks and Applications
- Reinforcement Learning in Robotics
- Artificial Intelligence in Healthcare and Education
University of California, San Diego
2019-2024
GlaxoSmithKline (United Kingdom)
2005-2008
The University of Sydney
1992
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 programming? We present first grounded theory analysis how programmers interact with Copilot, based on observing 20 participants—with a range prior experience using assistant—as they solve diverse tasks across four languages. Our main finding that interactions are bimodal : acceleration mode , programmer knows do next and uses get...
AI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As result, face new challenge: validating AI's suggestions. This paper explores whether Live Programming (LP), continuous display of program's runtime values, can help address this challenge. To answer question, we built Python editor combines an...
We consider the problem of type-directed component-based synthesis where, given a set (typed) components and query type , goal is to synthesize term that inhabits query. Classical approaches based on proof search in intuitionistic logics do not scale up standard libraries modern languages, which span hundreds or thousands components. Recent graph reachability methods proposed for Java scale, but only apply monomorphic data components: polymorphic infinitely explode size must be searched,...
Carbamazepine and dipyridamole are class II compounds (BCS) whose oral bioavailability is limited by poor solubility. The use of glass solutions to improve the this compound has been an area research for a number years. influence polymer parameters (Tg, hydrophilicity, solubility parameter, ability hydrogen bond) on solution properties investigated.Carbamazepine prepared with PVP/VA 64 37 spray drying melt extrusion. products then characterized XRPD, thermal, spectroscopic methods. Yield,...
We present Hoogle+, a web-based API discovery tool for Haskell. A Hoogle+ user can specify programming task using either type, set of input-output tests, or both. Given specification, the returns list matching programs composed from functions in popular Haskell libraries, and annotated with automatically-generated examples their behavior. These features are powered by three novel techniques. First, to enable efficient type-directed synthesis tests only, we develop an algorithm that infers...
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 programming? We present first grounded theory analysis how programmers interact with Copilot, based on observing 20 participants--with a range prior experience using assistant--as they solve diverse tasks across four languages. Our main finding that interactions are bimodal: acceleration mode, programmer knows do next and uses get...
AI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As result, face new challenge: validating AI's suggestions. This paper explores whether Live Programming (LP), continuous display of program's runtime values, can help address this challenge. To answer question, we built Python editor combines an...