Professional coders work collaboratively, and rarely does a computer scientist create a program solely on their own. Every successful programming project evolves as a result of Iterations of code, the merging of ideas, and the contributions of the individual team members. Not only does coding empower students to think logically and critically, to collaborate, and to create meaningful learning, but it also provides them an authentic opportunity to develop critical communication and collaboration skills.
Coding teaches grit and perseverance. Students have to problem solve by logically laying out steps in order to create a functional program, and there is not always an easy solution. By encouraging students to communicate their ideas with their peers and teachers, they can begin to process their thoughts and collaboratively reach solutions. This creates a classroom dynamic where students can be encouraged to work together, much like programmers in the real world. Student programming also does not have to stay inside the classroom, as students can connect with their peers in other coding classes to reaffirm their learning and to learn from each other.
When we have a question, we are “programmed” to raise our hand and ask the teacher for the answer. However, with the ever changing nature of technology, students will need to be able to rely on other ways to find solutions. A great strategy to encourage collaboration and perseverance in the coding classroom is to say “Ask 3, then Me.” It prompts students to ask fellow students before relying on the teacher for guidance.
Imagine that Billy wants to know how to make the Cupcake in Hopscotch move in a circle, but doesn’t know how. In an “Ask 3, then Me” environment, Billy talks with Susie about the rotating function, and then Johnny reminds Billy that there’s 360 degrees in a circle. Billy has now realized that if he rotates the Cupcake 360 degrees, then he has accomplished his goal. It’s through communication that students learn, and it’s enabled by creating a culture of collaboration.
If the students are still stuck in their problem solving, encouraging self-teaching to find the solution can be more important in a learn-to-code environment than the answer itself. By modeling how to search using Google, or platform specific forums like the Hopscotch Community or the Scratch Wiki, students are learning a vital digital literacy skill that can then be applied to any subject.
While “Ask 3, Then Me” creates a learning community within the classroom, when a student searches for the answer within a program’s forum, this community grows among other classroom coders. If a student still cannot find an appropriate answer, using a specific Google search such as “Hopscotch + Rotate Character” will help return a source for a solution from a wider learning community and teach valuable search skills. These radiating circles of communities not only allow students to find solutions for their own problems, but also allow students to reaffirm their learning because they are contributing to these communities.
As a Web Designer myself, if I find an interesting website component, I take a look at the code to see what the developer did (anyone can look at the code of a website by right clicking anywhere on a webpage in the Chrome Browser and then selecting “Inspect Element”). I may even take elements of that code and adjust it to meet the needs of my own website. In the coding world, this is not considered stealing but a testament to what that original designer has already created.
In a world where everything is only a few keystrokes away, coding in the classroom can teach some important digital citizenship skills as it provides an opportunity to have students publish their work and then learn from each other. For example, Scratch has a great system of uploading projects to be viewed by other students. Students can even look inside programs and “remix” the code to make it their own. Remixing gives value to what their peer has already done by transforming into something new. This creates an even broader learning community as ideas are not only exchanged but also developed into new creations.
Coding creates many learning communities nestled within each other where students are connecting through teaching and learning – both locally and globally. The characteristics of a coding classroom go beyond the code and enable an environment of collaboration, communication, and creativity.