{'fraction_non_alphanumeric': 0.02467232074016962, 'fraction_numerical': 0.013878180416345412, 'mean_word_length': 5.622448979591836, '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}}
CodeStruct: Design and Evaluation of an Intermediary Programming Environment for Novices to Transition from Scratch to Python

Transitioning from block-based programming environments to conventional text-based programming languages is a challenge faced by many learners as they progress in their computer science education. In this paper, we introduce CodeStruct, a new intermediary programming environment for novices designed to support children who have prior experience with block-based programming to ease the eventual transition to text-based programming. We describe the development of CodeStruct and its key design features. We then present the results from a two-week long programming class with 26 high school students (ages 12-16; M=14 years) investigating how CodeStruct supported learners in transitioning from Scratch to Python. Our findings reveal how learners used the scaffolds designed into CodeStruct to support their transition from blocks to text, and that transitioning to CodeStruct reduced completion time (1.98x) and help requests (4.63x) when compared to transitioning directly to Python. Finally, learners that used CodeStruct, performed equally well (and slightly better in 10/16 programming activities) in their final transition to fully text-based Python programming.