{'fraction_non_alphanumeric': 0.02406832298136646, 'fraction_numerical': 0.0, 'mean_word_length': 5.445, '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}}
Demystifying networking: teaching non-majors via analogical problem-solving

The goals of a typical Networking course for Computer Science majors include getting students to learn the relevant concepts, delving into details of various protocols, and using Networking utilities. Such focus on low-level details is unlikely to be interesting to non-majors. Also, there is a larger danger of students not understanding the basic concepts due to the perceived complexity in the details and technical jargon. We address both these issues by teaching Networking concepts through solving problems in analogical real-life scenarios. The main idea of our approach is: The instructor poses an analogy problem, students work in groups to devise solutions, followed by a class discussion to map the analogy problem as well as its solution to their corresponding technical details in Networking domain. Thus we emphasize the core concepts of Networking and demystify the specialized technical details. Across three offerings of this course, we have found that: (i) our students' performance on typical Networking questions is comparable or higher than traditionally taught students, (ii) students can solve unseen technical problems, (iii) students' confidence in tackling technical questions is high.