This is a list of dissertations that focus on the human aspects of software engineering. Feel free to contribute by editing this file using GitHub, submitting a pull request, or emailing me ([email protected]).
- User-Centered Design of Principled Programming Languages
- Michael Coblenz advised by Jonathan Aldrich and Brad Myers at Carnegie Mellon University
- Expanding Interface Design Capabilities through Semantic and Data-Driven Analyses
- Amanda Swearngin advised by Amy Ko and James Fogarty at University of Washington
- Interactive Program Distillation
- Andrew Head advised by Bjorn Hartmann and Marti Hearst at University of California, Berkeley
- The Role of Job Specialization in Software Engineering
- Cleyton Vanut Cordeiro de Magalhães advised by Fabio Silva at Federal University of Pernambuco
- Toward Productivity Improvements in Programming Languages Through Behavioral Analytics
- Patrick Daleiden advised by Andreas Stefik at University of Nevada, Las Vegas
- Qualitative Analysis of Knowledge Transfer in Pair Programming
- Franz Zieris advised by Lutz Prechelt at Freie Universität Berlin
- Practical Knowledge Barriers in Professional Programming
- Kyle Thayer advised by Amy Ko at University of Washington
- Identity-Based Signals and E-Mentorship to Support Engagement in Online Programming Communities
- Denae Ford advised by Christopher Parnin at North Carolina State University
- Understanding How Software Developers Resolve Security Vulnerabilities with Static Analysis
- Justin Smith advised by Emerson Murphy-Hill and Kathryn Stolee at North Carolina State University
- Software Developers' Work Habits and Expertise Empirical Studies on Sketching, Code Plagiarism, and Expertise Development
- Sebastian Baltes advised by Stephan Diehl at University of Trier
- Variations Foraging
- Sruti Ragavan advised by Margaret Burnett at Oregon State University
- Fostering Software Developer Productivity through Awareness Increase and Goal-Setting
- Andre Meyer advised by Thomas Fritz at University of Zurich
- Job Rotation in Software Engineering: Theory and Practice
- Ronnie Edson de Souza Santos advised by Fabio Silva at Federal University of Pernambuco
- On the Human Factors Impact of Polyglot Programming on Programmer Productivity
- Phillip Uesbeck (Drews) advised by Andreas Stefik at University of Nevada, Las Vegas
- Human-Centric Tools for Navigating Code
- Austin Z. Henley advised by Scott D. Fleming at University of Memphis
- Behavior-Informed Algorithms for Automatic Documentation Generation
- Paige Rodeghero advised by Collin McMillan at University of Notre Dame
- Error Messages as Rational Reconstructions
- Titus Barik advised by Emerson Murphy-Hill at North Carolina State Univerity
- An Empirical Evaluation of Feedback-Driven Software Development
- Moritz Beller advised by Andy Zaidman and Arie van Deursen at TU Delft
- Industrially Usable Distributed Pair Programming
- Julia Schenk advised by Lutz Prechelt at Freie Universität Berlin
- A Tool (Mis)communication Theory and Adaptive Approach for Supporting Developer Tool Use
- Brittany Johnson advised by Emerson Murphy-Hill and Sarah Heckman at North Carolina State University
- Software Developers Using Signals in Transparent Environments
- Jason Tsay advised by James Herbsleb and Laura Dabbish at Carnegie Mellon University
- Envision: Reinventing the Integrated Development Environment
- Dimitar Asenov advised by Peter Mueller at ETH Zurich
- Sustainable Software Development: Evolving Extreme Programming
- Todd Sedano advised by Cécile Péraire and Paul Ralph at Carnegie Mellon University
- A Spreadsheet Model for Using Web Services and Creating Data-Driven Applications
- Kerry Chang advised by Brad Myers at Carnegie Mellon University
- What Makes a Great Software Engineer
- Paul Li advised by Amy Ko at University of Washington
- Information Foraging Theory as a Unifying Foundation for Software Engineering Research: Connecting the Dots
- David Piorkowski advised by Margaret Burnett at Oregon State University
- Backtracking Support in Code Editing
- YoungSeok Yoon advised by Brad Myers at Carnegie Mellon University
- Expressing Interactivity with States and Constraints
- Stephen Oney advised by Brad Myers at Carnegie Mellon University
- Understanding Dynamic Software Behavior with Tools for Retroactive Investigation
- Brian Burg advised by Michael Ernst and Amy Ko at University of Washington
- Supporting Interrupted Programming Tasks with Memory-Based Aids
- Christopher Parnin advised by Spencer Rugaber at Georgia Institute of Technology
- Helping End-User Programmers Find and Fix Performance Problems in Visual Code
- Christopher Chambers advised by Christopher Scaffidi at Oregon State University
- Leveraging Variation Management to Enhance End Users' Programming Experience
- Sandeep Kuttal advised by Gregg Rothermel and Anita Sarma at University of Nebraska-Lincoln
- Social Aspects of Collaboration in Online Software Communities
- Bogdan Vasilescu advised by Mark van den Brand and Alexander Serebrenik at Eindhoven University of Technology
- A Theory of Motivation and Satisfaction of Software Engineers
- Alberto César Cavalcanti França advised by Fabio Silva at Federal University of Pernambuco
- Innovative Behavior Model of Software Professionals
- Cleviton Vinicius Fonseca Monteiro advised by Fabio Silva at Federal University of Pernambuco
- Framework for Measuring Program Comprehension
- Janet Siegmund advised by Gunter Saake at University of Magdeburg
- Supporting Users After Software Deployment through Selection-Based Crowdsourced Contextual Help
- Parmit Chilana advised by Amy Ko and Jacob Wobbrock at University of Washington
- Eliciting Informal Specifications from Scientific Modelers for Evaluation and Debugging
- Christopher Bogart advised by Margaret Burnett at Oregon State University
- Helping End-User Programmers Help Themselves: The Idea Garden Approach
- Chen (Jill) Cao advised by Margaret Burnett at Oregon State University
- Answering Reachability Questions
- Thomas LaToza advised by Brad Myers and Jonathan Aldrich at Carnegie Mellon University
- Automatically Describing Program Structure and Behavior
- Raymond Buse advised by Westley Weimer at University of Virginia
- Developer-Centric Models: Easing Access to Relevant Information in a Software Development Environment
- Thomas Fritz advised by Gail Murphy at University of British Columbia
- Introducing Innovations into Open Source Projects
- Christopher Oezbek advised by Lutz Prechelt at Freie Universität Berlin
- Information Foraging in Debugging
- Joseph Lawrance advised by Margaret Burnett at Oregon State University
- Example-Centric Programming: Integrating Web Search into the Development Process
- Joel Brandt advised by Scott Klemmer at Stanford University
- Integrating Natural Language and Program Structure Information to Improve Software Search and Exploration
- Emily Hill advised by Lori Pollock at University of Delaware
- Sociotechnical Coordination and Collaboration in Open Source Software
- Christian Bird advised by Premkumar Devanbu at University of California, Davis
- Fundamentals of Software Design Science
- Paul Ralph advised by Yair Wand at University of British Columbia
- Successful Strategies for Debugging Concurrent Software: An Empirical Investigation
- Scott D. Fleming advised by Kurt Stirewalt at Michigan State University
- Programmer Friendly Refactoring Tools
- Emerson Murphy-Hill advised by Andrew Black at Portland State University
- Topes: Enabling End-User Programmers to Validate and Reformat Data
- Christopher Scaffidi advised by Mary Shaw at Carnegie Mellon University
- Making APIs More Usable with Improved API Designs, Documentation and Tools
- Jeffrey Stylos advised by Brad Myers at Carnegie Mellon University
- Understanding and Supporting End-User Debugging Strategies
- Valentina Grigoreanu advised by Margaret Burnett at Oregon State University
- Asking and Answering Questions about the Causes of Software Behavior
- Amy Ko advised by Brad Myers at Carnegie Mellon University
- Pragmatic Software Reuse
- Reid Holmes advised by Robert Walker at University of Calgary
- Focusing Knowledge Work with Task Context
- Mik Kersten advised by Gail Murphy at University of British Columbia
- Gender HCI Issues in End-User Programming
- Laura Beckwith advised by Margaret Burnett at Oregon State University
- Asking and Answering Questions During a Programming Change Task
- Jonathan Sillito advised by Gail Murphy at University of British Columbia
- Development of An Empirical Approach to Building Domain-Specific Knowledge Applied to High-End Computing
- Lorin Hochstein advised by Victor Basili at University of Maryland
- Spoken Language Support for Software Development
- Andrew Begel advised by Susan Graham at University of California, Berkeley
- Project History as a Group Memory: Learning from the Past
- Davor Cubranic advised by Gail Murphy at University of British Columbia
- Lightweight Structure in Text
- Robert Miller advised by Brad Myers and David Garlan at Carnegie Mellon University
- A Programming System for Children that is Designed for Usability
- John Pane advised by Brad Myers and David Garlan at Carnegie Mellon University
- Cognitive Support in Software Engineering Tools: A Distributed Cognition Framework
- Andrew Walenstein advised by Binay Bhattacharya at Simon Fraser University
- Building Whole Applications Using Only Programming-by-Demonstration
- Richard McDaniel advised by Brad Myers and David Garlan at Carnegie Mellon University
- A Multi-Level Code Comprehension Model for Large Scale Software
- A. Marie Vans advised by Annaliese von Mayhauser at Colorado State University