Computer programming, a.k.a. coding, used to be something done only by those in-the-know involving complex strings of characters and more than a bit of magical mystique.
But that was before computer programming was made more accessible for everyone with block-based code: interlocking, graphical blocks representing text-based code. With this evolution, coding became less about the character strings and more about the problem solving. In essence, it simplified the process to the point where even a Kindergartener can do it.
Everybody in the country should learn how to program a computer… because it teaches you how to think – Steve Jobs
Teach Coding to Develop Creative Thinking Skills
The Partnership for 21st Century Skills (P21) defines creative thinking skills in two parts: thinking creatively as an individual and working with others creatively. It’s about generating new ideas, understanding that failure is part of the creative process, and considering diverse perspectives.
Individual Creative Thinking Skills: When we teach coding to students, they are given a digital toolbox, a coding stage, and unlimited possibilities for projects – creating games, writing songs, conjuring up characters, developing plotlines – there’s no end to what they can create.
Along the way, they invariably run into roadblocks as they work through the creative process: a tool doesn’t work the way they expect, the outcome is off base, or there’s a bug they can’t easily solve. To push past those challenges, they must seek alternate solutions, explore different possibilities, and once in a while start over from scratch.
Collaborative Creative Thinking Skills: In coding in the classroom with partnerships or groups, a thought shared by a collaborator triggers an idea in someone else’s mind. By considering the issue from multiple angles and melding the ideas, the project grows stronger. One person’s big vision combined with another’s attention to detail and a third’s left (or right) of center idea that brings it all together. The creative process is stronger as a direct result of the contributions of more than one person.
Digging deeper, programmers often work to solve problems, and that’s when creative thinking skills are a game changer. The creative angle applies to every discipline from applied physics to zoology. It’s about thinking outside the proverbial box to find solutions that work.
When there’s more than one head in the game, the potential expands. Harness that potential to impact the biggest problems we face as humans, and the results can be seriously inspiring!
Teach Coding to Promote Student Collaboration
The organizations involved in P21 work know that students’ future success, regardless of their path, will depend on their ability to play well with others. Building essential collaboration skills for students like listening intently, considering ideas different from their own, and learning to be flexible is key. In today’s classrooms, teachers regularly create opportunities for student collaboration, and coding is another perfect fit.
- In paired programming, kids can learn to be the guide on the side rather than the one who jumps in to fix a string of code that needs to be debugged, allowing everyone to learn. They learn to sit side-by-side with their classmate, talking things through but allowing the puzzled classmate to do the work.
- The “Ask Three Then Me” strategy works wonders to facilitate student collaboration when coding. The rule: ask three classmates before asking the teacher for help. Invariably, someone in the classroom has figured out how to navigate that step.
- Imagine a gaggle of girls digging in together to find a bug and resolve it, the quietest student taking the lead in demonstrating how a loop makes code more efficient, or the celebration of a group that persevered to successful completion of their coded game past multiple points of frustration.
Along those same lines, when we teach coding, it’s absolutely okay to say, “I don’t know how to code that yet. Let’s see if we can figure this out together.” That brave yet simple admission demonstrates in a very real way that student agency is key. There isn’t always going to be a teacher (or boss or leader) who has all the answers in coding – or in anything else.
In a true learning community, authentic student collaboration becomes part of the day-to-day business of the classroom allowing for those same skills and behaviors to be part of what students will one day bring to jobs we cannot yet imagine. Tackling coding together brings abundant opportunities for working together, for leading and following, and for listening to each voice.
Teach Coding to Cultivate Student Communication Skills
When teachers talk about student communication skills, they typically mean writing and speaking, and in coding, those are definitely part of the equation. But coding presents an opportunity to communicate in a new language.
In teaching students to code, they learn complex vocabulary – algorithm, sequence, computation – but in addition, they learn to logically order their thoughts. In paired programming, students are pushed beyond statements like, “Put that there” to “Move the jump block in front of the draw block.”
These communication skills, with an increased level of articulation and order, impact their learning in other areas as well. Their brains understand the logical sequence of events, leading them to be able to sequence a story. They grasp more firmly the idea of cause and effect, deepening their understanding of other texts they tackle, and they can communicate those ideas more effectively.
The coding guide-on-the-side must use clear vocabulary in a logical sequence to communicate to their partner which blocks need to be adjusted to debug the code. In creating a new idea, they must find words to convey their thoughts to their peers.
Teach Coding to Teach Critical Thinking
At the heart of coding is computational thinking, which encompasses logic, analysis, abstract representation, algorithms, and the ability to generalize and transfer a process to new situations. Computer programming is founded on logic and algorithms that are made stronger when critical thinking skills are applied to turn abstract ideas into real world solutions.
In Kindergarten, student critical thinking skills can be tested and challenged by troubleshooting a marble run that doesn’t work as expected. The thinking is the same as debugging code. It is a step-by-step process in which analysis is made at each juncture – it works here; it doesn’t work there.
Ultimately, the goal with teaching coding in the classroom is to transfer critical thinking skills to more sophisticated applications: the workings of a machine, troubleshooting technology devices, analyzing the logistics of a project, or examining lines of code.
As a serious bonus, the frustration of code that doesn’t work gives students ample opportunity to grow their persistence, to learn the grit that will give them the edge in every other aspect of their lives.
Diving in to Coding in the Classroom
Ready to take the plunge to start teaching coding in the classroom? Or perhaps just take things slowly, one step at a time? Either approach works. What’s important is to begin.
Even if devices aren’t available or a 1:1 student ratio isn’t possible, there are unplugged coding activities that require no electricity at all but deepen student learning, nonetheless. And honestly, lots of ways to teaching coding to students require no buttons – just a brain. It isn’t even necessary to overhaul curriculum. So much of the work of computational thinking and coding begins with incorporating simple changes in instructional methodology.
To push student creative thinking skills, provide time for them to brainstorm solutions to a variety of problems, offer them many opportunities to work on open-ended questions, and celebrate the range of answers that results. Encourage them to find more than one way to solve a math problem or give them a pile of recycled material and see what they can conjure up. What matters here is the openness of creative thinking – more than one right answer, more than one way to one right answer, and more opportunities to create new ideas and products.
To encourage student collaboration skills, design learning experiences that require the input of everyone on the team. When brainstorming, give each student a different color of marker for the chart paper brainstorm, providing a visual representation of each student’s additions to the overall thought process. When designing group experiences, create an essential role for each student, rotating those roles each time, so that the successful completion of the task requires the contributions of all.
To enhance student communication skills, provide opportunities to share ideas in a variety of ways. Sure, discussion and conversation can play a part, but communicating also occurs via artistic expression, written language, and using manipulatives. Task one student with summarizing the group’s ideas, another with note-taking, and a third with timekeeping. What’s essential here is giving students a chance to contribute to the ideas of the group and to listen and process others’ thoughts as well.
To build students’ critical thinking skills gently grow thinking with questions like:
- What are the possible outcomes of that?
- What seems to be in the way?
- Can an idea be simplified?
- Is there another way to solve that problem? How?
The most powerful learning opportunities come when all four skills are tapped simultaneously. Imagine a project that requires out-of-the-box thinking, working together, sharing ideas, and solving an authentic problem. Coding delivers exactly that kind of experience.
Coding Their Way to 21st Century Learning
Computer languages will evolve and change. Apps will come and go. But the thinking about how to write code transcends. There are problems to be solved, and the minds sitting in our classrooms will be the ones who solve the world’s greatest challenges.
- Students must learn creative thinking skills to think beyond the box, to imagine the world in a different way, and to adjust when Plans A, B, and C haven’t worked.
- Students must cultivate communication skills to listen to one another, challenge each other, celebrate successes, and overcome challenges.
- Students must develop communication skills to share their ideas, communicate effectively, and articulate their thoughts.
- Students must apply their critical thinking skills to analyze data, examine narratives, find connections, and work through logic.
Want to do all of that? Teach students to code. Take one hour to try it out. For support, reach out to the coding communities and engage with other educators on social media. Take that first step. After all, it’s so easy even the Kindergarteners are doing it!