Our faculty, staff, and students hail from a wide range of research disciplines, institutions, backgrounds, and more. Learn more about the faculty who advise REU students as project mentors as well as the most recent REU students themselves!
Yuvraj Agarwal's research interests are at the intersection of Systems and Networking and Embedded Systems, and I am particularly excited about research problems that benefit from using hardware insights to build more scalable and energy efficient systems.
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.
Nathan Beckmann is interested in computer systems, computer architecture, and performance modeling.
Andrew Begel's research looks at how technology and AI can play a role in extending the capabilities and enhance the quality of life for people with disabilities.
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.
Laura Dabbish conducts research in Computer-Supported Cooperative Work, Human-Computer Interaction, Information Systems, Computer-Mediated Communications, Social Psychology and Organizational Behavior.
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.
Mayank Goel's research focuses on designing, implementing, and testing new sensing systems using sensors and devices that are already present in the environment.
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.
Hanan Hibshi’s research interests include usable security and privacy, cybersecurity education, security requirements, mobile and IoT Security, expert’s decision-making, and ML and AI for security and privacy.
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.
Daniel Klug is a Systems Scientist at Carnegie Mellon University and the head of the MINT Lab (https://www.mint-lab.org). His research focuses on mainly qualitative approaches to media, interaction, and technology, such as human-computer interaction, practices of producing and engaging with audiovisual media artifacts, and computer-supported collaboration and video annotation tools.
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.
Ruben Martins is a Systems Scientist at Carnegie Mellon University. His interests lie in the intersection of constraint programming with program synthesis, analysis, and verification.
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.
Over the past dozen years, Norman’s primary research focus has been in the area of mobile and pervasive computing, cybersecurity, online privacy, user-oriented machine learning, and semantic web technologies with a particular focus on mobile and social networking.
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.
Vyas Sekar is an Associate Professor in the ECE Department at Carnegie Mellon University, with a courtesy appointment in the CS Department. His research spans networking, security, and systems.
Justine Sherry is a computer scientist interested in everything networked: from protocols and applications to the hardware that carries our data across the Internet. Her goal is to make networks faster, more reliable, more secure, and lately, more fair and equitable.
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.
Christopher Timperley is a Systems Scientist in the Software and Societal Systems Department at Carnegie Mellon University.
Ben Titzer is a Principal Researcher in the Software and Societal Systems Department since January 2022. His research focuses on systems; systems programming languages, compilers, virtual machines, and managed runtime systems, as well as the higher-level systems that they support.
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.
Maverick Woo's current research interests include software security and program analysis, with a focus on algorithm design and budget optimization.
I work on algorithms and machine learning. My recent work focuses on (1) how to make machine learning better aligned with societal values, especially privacy and fairness, and (2) how to make machine learning more reliable and robust when algorithms interact with social and economic dynamics. I study these questions using methods and models from learning theory, optimization, statistics, differential privacy, game theory, and mechanism design, and human-computer interaction.