This past semester, I took an introductory Python course with roughly fifty undergraduate and a handful of graduate peers. The course—“COMP 10: Computer Science For All”—was designed specifically for non-computer science majors. As a researcher exploring coding and robotic technologies for young children, I hoped the experience could provide me with perspective on foundational principles of computer science (CS) and how students from different disciplines approach this topic.
Novice-friendly courses like COMP 10 are popular at higher education institutions. Some students need the course credits to fulfill a degree requirement. Others are interested in the topic and enroll to decide whether to pursue it further. And many students feel it’s a necessary rite of passage in their pursuit of learning because the course, while discipline-specific, uncovers a fundamental set of concepts and skills that everyone can and should learn. As a researcher, I find this last reason particularly interesting.
In my doctoral work with the Tufts University DevTech Research Group—a research lab focused on how new technologies that engage children in coding, robotics and making can play a positive role in their development and learning—I explore how parents and teachers introduce these technologies to young children. Before enrolling in this Python course, I tinkered with simple block-based programming tools, such as ScratchJr and KIBO robotics, and guided parents and teachers through using them with children. I was intrigued to learn whether the practices and approaches used to teach CS in grades K-2, which is my area of focus, would be in any way similar to those at the university level.
With the increasing push to create and adopt K-12 CS standards across the country and the growing popularity of CS courses in higher education, I wondered whether taking COMP 10 would make me think differently about what it means to teach and learn coding. Though the motivations and tools used to introduce computer science concepts in kindergarten differ significantly from those at the undergraduate level, I was surprised to find three key takeaways that are universally compelling for CS education across all ages and especially for our early learners.
1. The social-emotional aspects of programming are as important as the content knowledge.
As a COMP 10 student, I spent many hours furiously staring at my screen, wondering why my program wasn’t working or why I lost multiple points for missing one little piece in my code. The frustration of not being able to debug an error was very real. At the same time, the joy I experienced from finally getting it right was just as emotional.