Michael HiltonView profile
Teaching Professor
Michael Hilton is an Associate Teaching Professor at Carnegie Mellon University's School of Computer Science, where he serves as the Associate Department Head for Education in the Software and Societal Systems Department. He directs the Software Engineering Minor and the Software Engineering Concentration programs, and teaches various software engineering courses including Foundations of Software Engineering, Introduction to Software Construction, and Crafting Software. His research interests focus on improving the lives of software engineers, with particular emphasis on flaky tests , continuous integration , and structured editors . His work bridges both the research and educational aspects of software engineering, aiming to make software development processes more reliable and efficient while educating the next generation of software engineers. Analysis of his recent publications reveals a strong focus on flaky test detection and mitigation, with significant contributions to understanding test reliability in continuous integration environments. His research spans empirical studies of testing practices, machine learning approaches to flakiness prediction, and educational aspects of software engineering. A notable trend is his increasing focus on the intersection of software testing and education, particularly examining how students interact with modern development tools and practices. Professor Hilton is highly active in the software engineering research community, serving on program committees for major conferences including ASE, ICSE, and SIGCSE. He has contributed to numerous workshops and symposia focused on software engineering education and testing research. As an educator, he has developed and taught multiple software engineering courses covering object-oriented design, testing, concurrency, and software construction principles. He emphasizes practical, hands-on learning experiences that prepare students for real-world software development challenges. His educational research explores best practices for teaching software engineering and the impact of new technologies like generative AI on software engineering education. He maintains an active research lab focused on software engineering tools and education, collaborating with both academic and industry partners to address practical challenges in software development workflows. His current projects include investigations into flaky test patterns, continuous integration practices, and the integration of modern development tools into software engineering curricula.













