{'fraction_non_alphanumeric': 0.015822784810126583, 'fraction_numerical': 0.0, 'mean_word_length': 5.7785714285714285, '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}}
Designing for Critical Algorithmic Literacies

As pervasive data collection and powerful algorithms increasingly shape children's experience of the world and each other, their ability to interrogate computational algorithms has become crucially important. A growing body of work has attempted to articulate a set of "literacies" to describe the intellectual tools that children can use to understand, interrogate, and critique the algorithmic systems that shape their lives. Unfortunately, because many algorithms are invisible, only a small number of children develop the literacies required to critique these systems. How might designers support the development of critical algorithmic literacies? Based on our experience designing two data programming systems, we present four design principles that we argue can help children develop literacies that allow them to understand not only how algorithms work, but also to critique and question them.