Jonathan Aldrich does research on programming language and type system design, and empirical studies of programming languages. With his students, Jonathan recently developed Plaid, a programming language in which objects can change their interface, representation, and behavior via a novel state transition language construct.
Travis Breaux conducts research in requirements engineering, which aims to translate often ambiguous and conflicting user needs into executable software specifications through the use of natural language semantic analysis and formal notations. Prior work focuses on extracting predictable, analytical models from laws, regulations and policies to help software developers evaluate their system against a set of rules or norms.
Lorrie Cranor is a Professor of Computer Science and of Engineering and Public Policy. She directs CyLab as well as it's Usable Privacy and Security Laboratory, and her research combines three high-level strategies to make secure systems more usable: building systems that "just work" without involving humans in security-critical functions; making secure systems intuitive and easy to use; and teaching humans how to perform security-critical tasks.
David Garlan does research in formal modeling, software architectures, and self-adaptive systems. In addition to Rainbow, he has recently spearheaded a new research area of end-user architecting that aims to use formal software architecture techniques to provide support to end-users to compose and reason about software compositions that are used in their everyday professional activities.
Jim Herbsleb's interests lie primarily in the intersection of software engineering, computer-supported cooperative work, and socio-technical systems, focusing on such areas as geographically distributed development teams and large-scale open source development.
Limin Jia is interested in applying formal techniques to make software systems more secure, either through using language-based techniques to build provably secure software systems, or using formal logic to verify the security properties of (distributed) software systems, or developing formalisms to reason about security and privacy guarantees of software systems in the presence of adversaries.
Eunsuk Kang is interested in finding better ways to design software systems that are safe, secure, and reliable to use. He is especially interested in leveraging rigorous modeling and analysis techniques to detect and address potential flaws in early development stages.
Christian Kästner does research in controlling the complexity caused by variability in software systems, from providing tool support to static analysis and testing. Among others he developed an infrastructure to parse and type check all 210000 compile-time configurations of the Linux kernel.
Claire Le Goues researches ways to automatically assure and improve the quality of large, real-world, evolving software systems; she uses applied program analysis to, e.g., keep autonomous systems running correctly, automatically repair bugs in programs, and help developers reason about the correctness of their code.
Heather Miller is interested in various flavors of distributed and concurrent computation, often from the perspective of programming languages: data-centric, data-intensive (big data), and eventually-consistent (edge computing). A major recurring theme in her work is composability. She seeks to enable the construction of complex distributed systems via the composition of well-understood components that are correct by construction.
Brad A. Myers does research at the intersection of software engineering and human-computer interaction (HCI). One of his current projects focuses on supporting exploratory programming which has developed a mechanism for selective undo, which will be adapted for this summer's project. Dr. Myers has a long history of successfully working with undergraduates on projects, including many who have been co-authors on award-winning papers.
Bradley Schmerl does research in software architectures and self-adaptive systems. With the ABLE research group, he has developed a system called Rainbow for adapting systems at run-time in the face of multiple concurrent quality concerns.
Josh Sunshine has broad research interests at the intersection of programming languages and software engineering. He is particularly interested in better understanding of the factors that influence the usability of reusable software components.
Bogdan Vasilescu does research at the intersection of software engineering, social computing, and computer-supported cooperative work. Drawing from social coding platforms like GitHub, his work employs data-driven research methods to study composition and efficiency in distributed development environments.