Toolsmiths have created thousands of powerful and useful software development tools, yet software developers only use a small subset of the available tools, and those that a developer does use are often not fully leveraged. I believe that the solution to this problem can be found by rethinking the design of software development tools, based on a better understanding of why developers use and do not use these tools.
My research spans human-computer interaction and software engineering, winning three ACM SIGSOFT Distinguished Paper Awards. My research problems are informed by and my results influence software development at companies such as Google and Microsoft.
I am currently on several program committees, including the 2012 International Conference on Software Engineering (ICSE), the 2012 Conference on Object-Oriented Programming, Languages, and Systems (OOPSLA), the 2012 Symposium on Visual Languages and Human-Centric Computing (VL/HCC), and 2011 Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU). I am privileged to work with several outstanding Ph.D. students: Xi Ge, Brittany Johnson, Donghoon Kim, Da Young Lee, Yoonki Song, and Shundan Xiao.
Previously, I worked with Gail Murphy in the Software Practices Lab at the University of British Columbia. I finished my Ph.D. under Andrew P. Black at Portland State University in 2009. My dissertation topic investigated how to construct refactoring tools that programmers actually want to use.
The next classes I will teach will be in Spring 2012, which will be undergraduate (326) and graduate (510) software engineering. My current office hours are Monday and Wednesday, 11:30-12:30.
Are you a student looking for an advisor? (If you're unsure of what my research area is, check out one of my recent papers.) Are you a researcher and think that our interests overlap? I'm always looking for collaboration; you can reach me at emerson@csc.ncsu.edu