Scott Fleming

Scott Fleming

Department Chair and Associate Professor

Dunn Hall 303
Office Hours
Call for hours

PhD, Computer Science, Michigan State University, 2009

Teaching Interests:
Computer programming, software engineering

Research Interests:
Computer science education, software engineering, human-computer interaction

Personal Website:

Google Scholar

Dr. Fleming joined the Computer Science Department in Fall 2011. Prior to joining, he earned his doctorate in Computer Science from Michigan State University and worked as a postdoctoral researcher in the areas of human–computer interaction and software engineering at Oregon State University.

Dr. Fleming's research aims to advance our understanding of how people learn and perform modern computer programming and software development and to design innovative tools and interventions that more effectively address the challenges people face. He, his students, and his faculty and industry collaborators have, for example, developed tools for helping developers forage for information and navigate code more effectively, for helping end-user programmers solve technical problems, for helping developers perform peer code reviews more effectively, and for teaching novice programmers to comprehend computer code. His research papers have appeared in highly selective and prestigious computer science research venues, including ACM CHI Conference on Human Factors in Computing Systems, IEEE Transactions on Software Engineering (TSE), and ACM Transactions on Software Engineering and Methodology (TOSEM), and he has received multiple best paper awards, including an ACM SIGSOFT Distinguished Paper Award. His research has received financial support from the National Science Foundation as well as industry partners, including National Instruments and ABB.

At the University of Memphis, Dr. Fleming teaches undergraduate- and graduate-level software engineering courses. His courses cover the foundational principles, processes, and methods of software engineering while helping students gain practical skills in the use of modern software development tools, platforms, and environments.