SHF: Medium: Collaborative Research: Programming Strategies
George Mason University, Fairfax VA
Investigators
Abstract
Software developers create and maintain software of all kinds, from consumer applications, enterprise business software, and government websites, to safety-critical systems that manage infrastructure for airplanes, traffic, and water. Implicitly, software developers use programming strategies to read, write, test, and repair software. This project will systematically investigate these strategies, developing new ways to describe, disseminate, and effectively teach programming strategies. The project will also explore the effect of programming strategies on productivity, investigating if and how they mediate the effectiveness of software development tools and techniques such as programming languages, software development methodologies, and developer tools. The approach will encompass a comprehensive set of studies of two kinds. The first kind will be systematic analyses of recordings of software developers at work, made possible by the recent availability of hundreds of thousands of hours of work live-streamed by developers on popular websites. The project will extract strategies from these diverse videos, curating these strategies in a repository of abstract strategy descriptions. The second kind of study will be a series of laboratory and field studies investigating how programming strategies vary in effectiveness as well as how strategies mediate the effectiveness of developer tools and techniques. Together, these studies will create a scientific foundation for the study of programming strategies as well as a practical new resource offering a repository of strategy descriptions to both researchers and educators.
View original record on NSF Award Search →