{'fraction_non_alphanumeric': 0.025343189017951427, 'fraction_numerical': 0.0, 'mean_word_length': 4.962264150943396, '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}}
Mio: A Block-Based Environment for Program Design

Program design should be taught with a comprehensible guideline and appropriate tool support. While Felleisen et al.'s program design recipe serves as a good guideline for novice learners, no existing tool provides sufficient support for step-by-step design. We propose Mio, an environment for designing programs based on the design recipe. In Mio, the programmer uses blocks to express design artifacts, such as examples of input and output data. The system checks the consistency of the design, gives feedback to the programmer, and produces a half-completed program for use in steps after designing. A preliminary experiment in the classroom showed its ability to make program design easier for novices, and to encourage programmers to follow the design recipe. In this paper, we demonstrate the core features of Mio, report the results of the experiment, and discuss our plans for extensions.