{'fraction_non_alphanumeric': 0.012315270935960592, 'fraction_numerical': 0.0, 'mean_word_length': 5.253846153846154, '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}}
Game Programming as a Non-Threatening Introduction to Functional Languages

In this paper, we explain a new analysis technique to guide CS students during the development of a videogame. This technique is so structured as to make students learn the basics of functional programming without even realizing it. We start by describing some of the difficulties associated with forcing a more abstract style of reasoning and a functional language to undergraduate students. Then, we describe our general abstract framework for developing videogames and we show how an abstract model for a videogame built with this technique can be translated into working code almost effortlessly. Finally, we discuss how this approach can be extended to handle issues like users’ interaction and more sophisticated state management.