With all the hype about teaching kids to code, we must be careful not to forget the core aspect of any education movement: the kids. Merely stating ‘all kids should learn to code’ without providing real-world context actually limits the appeal and impact of this movement.
We must encourage students to see there is more to computer science than coding, and more to coding than becoming a software developer. Clive Beale of the RaspberryPi Foundation articulated this sentiment perfectly when he stated, “we’re not trying to make everyone a computer scientist, but what we’re saying is, ‘this is how these things work, it’s good for everyone to understand the basics of how these things work. And by the way, you might be really good at it.’”
As with any content area, if students see the connection to the real world and a broader set of future outcomes they will be significantly more motivated. This concept is best captured in the learning theory of “intent participation,” where children learn effectively through collaborative participation and easily gain motivation when they understand the purpose of the activity.
So how can we as parents and educators create collaborative learning environments where kids can see the purpose behind why they are learning to code? Ideally CS education efforts would include students in the curriculum design and decision making process.
What Do Students Want?
Amplifying student voices in the ‘learn to code’ movement is essential, which is why I was so excited to learn about Austin Gagnier, the 12 year-old in Canada behind the #CSforStudents initiative. Even though his school did not offer any CS classes, he taught himself using online resources like W3Schools. Inspired by the desire to create a tool his classmates and teacher could use, Gagnier created “The Ultimate Classroom,” a website where students can post assignments and have their own pages for their work. “I liked working on the app because it was experimental, some things would work and some wouldn’t.” Gagnier says, “I’m thinking of making a report card app for online report cards.
To connect with a wider group of students and educators interested in teaching kids computer science, Gagnier created the Twitter chat, which convenes on Tuesdays at 4pm PT, after being motivated by the #CSK8 chat his teacher had participated in. With support from his teacher, Mrs. Aspinall, Gagnier joined Twitter in 2014.
He is tracking his own CS education journey on his blog and hopes more students will follow suit and play a more active role in their learning process. When asked what he’d like to see, he shared, “I wish that we learned computer languages during language class.”
Encouraging Experimentation
Most of the renewed interest and investment in K-12 CS education efforts have focused on online apps and games. Yet research shows that offline instruction and face-to-face interactions are critical to the success of any online tools. All this to say, we do not need more online schools and tools. We need to empower educators and allow students to explore in their classrooms and learning environments. “All kids should learn how to code,” claims Rhea Nair, a Bay Area 5th grader, “it just needs to be in the right way. I took a class once where the tool we used was very cool but the teacher didn’t know how to help us. Everyone had to create the same project and go at the same pace. It was pretty frustrating.”
Creating a culture of experimentation is vital to designing effective computer science programs for kids. To encourage young learners to drive their own learning, it is essential we ask them guiding questions, such as “What problem do you want to solve?” or “What project do you want to build?” Nair does not know exactly what she wants to create with her newfound coding skills but she knows she wants to help redesign everyday items. “I’d probably build something to save people time.” Encouraging Nair to connect her ability to code to real world applications is essential creating deeper learning outcomes.
At Embark Labs we encourage experimentation by giving students open-ended projects that they can continuously tweak as their learning progresses. We aim to broaden the conversation beyond just coding to focus on teaching kids computational and design thinking. Coding is one way to build things, and only one part of a larger process of identifying opportunities and helping kids become creative problem solvers.
By working with educators to design our courses around students creating their own original projects and apps, we find students are incredibly engaged during our courses and are increasingly interested in continuing their CS education. Most students are drawn towards creating animations, games and stories, and many of them continue to work on their projects after the course is over. Nair shares that, “I went back and looked at the first project I created and it was really weird but I learned a lot from the project. Now I know I can do more than that."
A big part of any learning environment are the educators and students themselves. The modern ‘learn-to-code’ movement runs the risk of losing it’s meaning if we don’t stop and ask our students, and ourselves, what’s it all for?