Using Foundational CS1 Curricula For Middle School & Early High School Computer Programming EducationK12In-Person
Teaching computer programming to K-12 learners is widely recognized as important for invoking interest in computing in college and beyond. Specifically, with respect to middle school students, several computing education efforts do an excellent job of making the curricula engaging through block-based and multimedia project-based content. However, the programming concepts covered are notably and understandably simpler than those covered in college-level AP CS or CS1. We instead believe that today’s college-level CS1 curricula can and should be taught to middle school and early high school students. In this paper, we discuss our efforts in adapting the CS1 course offered at a large public university, for teaching programming to this age group. Over the course of 15 months, we designed and taught the adapted 16-lecture course to multiple sections of middle and early high school students (ranging from 6th to 10th grade and beyond). Our adaptations included persistent use of memory diagrams, extensive practice, and engaging reviews. Analysis of the final course assessment and surveys showed that these students were able to learn CS1 concepts in depth. Our results held regardless of grade level, mathematics knowledge, and acceleration level, but varied with students absences and gender. We urge the CS education community to adopt our approach widely.