{'fraction_non_alphanumeric': 0.020637898686679174, 'fraction_numerical': 0.0075046904315197, 'mean_word_length': 5.466666666666667, '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}}
Scalable personalized learning

We describe an approach to teaching mid-sized computer science classes in a highly personalized manner. We began with an enumeration of fundamentals that reflect commonly recognized benefits of tutoring: student accountability, customized instruction, clear expectations, emphasis on discussion, and regular evaluation and feedback. For classes of 75 or more some of these appeared unattainable without an army of teaching assistants. But we succeeded, experimenting first in a senior level class of 23 with a design that has remained surprisingly stable as we have transitioned it into discrete math classes of 75 to 80. Our approach includes a novel mix of old and new teaching tactics and techniques combined to create a discussion oriented, high feedback, personalized, group learning environment. We evaluate the costs and benefits associated with our approach, including the surprising result that individual, video-taped exit interviews add little to the instructor's and TA's burden, when all costs and benefits are evaluated.