{'fraction_non_alphanumeric': 0.028500619578686492, 'fraction_numerical': 0.009913258983890954, 'mean_word_length': 5.412698412698413, '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}}
Novel algorithm explanation techniques for improving algorithm teaching

The analysis and the understanding of algorithms is a very important task for teaching and learning algorithms. We advocate a strategy, according to which one first tries to understand the fundamental nature of an algorithm, and then---after reaching a higher level of awareness---chooses the most appropriate programming language to implement it. To facilitate the process of understanding of algorithms, their visualization, in particular animation, is considered to be the best approach. Traditional Algorithm Animation (AA) systems usually aim for teaching algorithms in higher education, see for example the chapter introduction of Kerren and Stasko [2002] or the earlier anthology on software visualization [Stasko et al. 1998].