by Charles William Kann III
Directed by Professor Rachelle S. Heller
There are few empirical studies of how programmers actually reason about concurrent programs. Therefore design methodologies, tools, and teaching methods for concurrent prograniming are either based on an introspective understanding of their creators as to how they reason about concurrent programming, or how the concurrency is actually implemented. In this dissertation, an empirical study into how programmers generate concurrent programs is presented. This research is intended to provide a better basis for future work in concurrent programming, and programming in general.
This study analyzed verbal protocols and written artifacts from 11 subjects as they generated a program to solve a simple simulation problem. The verbal protocols from the subjects were transcribed, and three types of analysis were performed. The first was to categorize the solutions which were generated based on the programs which the subjects produced. The second was to categorize each line of the subjects’ protocols based on the planning strategy which is represented in the line, and to produce graphs of these planning strategies which were analyzed. The third was to analyze the concurrent keywords which the subjects used, and the points in the protocols in which they were used.
As a result of these studying these protocols, a model of concurrent programming was developed in which different program paradigms can be categorized by three types of attributes, Structural, Organizational, and Programming. Implementation of the program within each of these attributes is accomplished through preexisting Plans, or by using strategies to derive implementation details.
for the foils from the dissertation defense presentation.