{'fraction_non_alphanumeric': 0.014299332697807437, 'fraction_numerical': 0.0019065776930409914, 'mean_word_length': 5.21301775147929, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Roles of variables and programming skills improvement

Roles of variables capture tacit expert knowledge in a form that can be taught in introductory programming courses. A role describes some stereotypic use of variables, and only ten roles are needed to cover 99% of all variables in novice-level programs. This paper presents the results from a protocol analysis of a program creation task in an experiment where roles were introduced to novices learning Pascal programming. Students were divided into three groups that were instructed differently: in the traditional way with no treatment of roles in lectures or program animation; using roles in lectures but not in animation; and using a role-based program animator in addition to using roles in lectures. The results suggest that the introduction of roles provides novices a new conceptual framework for better mental processing of program information and that the use of role-based program animation increases novices' ability to apply data-related programming plans in program construction.