The past decades have witnessed the emergence, among others, of two important trends in software systems. First, an increasing number of software technologies have a significant social component (e.g. end-user programming, collaborative development tools, phishing detection tools, etc). Second, software systems have increased significantly in complexity and size, challenging traditional development and testing approaches. Empirical research methods provide a basic set of tools for researchers interested in designing and evaluating such systems.
This course is designed to acquaint you with several basic types of empirical methods such as ethnography, interviews, surveys and experimental and quasi-experimental design. Ultimately, the goal of the course is to develop your skills to make appropriate methodological decisions, and to allow you to become a better and more critical consumer of research. You will be required to critique a number of examples of published research as well as apply one or more methods to your current research projects to address an important software engineering question.