{'fraction_non_alphanumeric': 0.02035830618892508, 'fraction_numerical': 0.0, 'mean_word_length': 4.8246445497630335, '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}}
Teaching programming to beginners

Because of the rapid growth of computing and its influence in schools and community colleges, we find we must teach a growing number of graduate teachers and administrators how to program. Because we firmly believe that the only programming worth doing is well-structured programming, this is the sort of programming we want to teach these graduates to do. Because BASIC, FORTRAN, and COBOL are so widely implemented around the world, we know that one or more of these languages will be the ones most of our students will end up programming in, after they leave Columbia. Because such languages are not particularly well-suited for teaching structured programming to beginners, we decided to develop an indirect approach to this goal, one which would make the learning of these languages the learning of second languages in a second phase of learning to program. The approach which we have been developing, including the major components of a first programming language - FPL, is suggested in the remainder of this paper. For us, it has proven to be an indirect but effective way to teach raw beginners how to write well-structured programs in archaic, ill-designed, high-level real languages.