An empirical analysis of roles of variables in novice-level procedural programs

The use of all variables in 109 novice-level, but expert written, procedural programs were analyzed in order to find a small but still comprehensive set of generic roles that describe the nature of the successive values a variable obtains. This paper gives the results of the analysis: a list of only nine roles that cover 99% of variables, frequencies of the roles, and discovered role changes.