This post first appeared on Edudemic.
Fueled by an incredible demand in the workforce for proficient programmers and the need to teach critical thinking skills, the coding movement in schools has exploded. Furthermore, we all communicate through technology, so we should at least know the basic premise of coding because the gadget sitting in our pocket, or on our desk, should not be a mysterious black box to us or our students. Just like writing, multimedia, art, and music are mediums to show ideas, coding can be another form of expression.
“Learn to code, code to learn”
We need to think beyond the syntax of a programming language and focus on how using coding as a learning tool will not only give students a key 21st Century Skill but also allow them to demonstrate their learning through another creative outlet. Mitch Resnick, co-founder and creator of the MIT Media Labs, coined the phrase “Learn to code, code to learn.”
In his TED Talk, Resnick talks about learning in context. Coding lends itself to creating a more meaningful context for learning objectives. For example, if a student wants to create a game, he or she must increment some type of variable in order to keep score. Learning variables might have been a skill left to worksheets in math class, but with coding, they can be applied in a more meaningful demonstration of understanding.
Reach new learners
According to a Pew Internet Research study, 97% of students play games. Code is merely the fuel for games. Thomas Suarez, a 12 year app developer, gave a TED talk demonstrating how kids thirst to learn to code. He says in his talk,
“A lot of kids these days like to play games, but now they want to make them. Its difficult because not many kids know where to go make games. For soccer, you can go to soccer practice, or to learn how to play the violin, you go to violin lessons. But where do you go to learn how to make an app?”
There are students who can thrive in a coding atmosphere to demonstrate their learning as coding projects are creative, collaborative, and challenging. Just like learning a foreign language is easier to absorb at a younger age, so is coding. Introducing coding at the middle school or grade school level empowers students to embrace computer science throughout their education. Thomas Suarez started at age 10 and has now given a TED talk about app development!
Coding can also be a great form of learning expression – particularly for girls who tend to be very detailed oriented, creative, and social. Unfortunately, there’s a stigma we need to break that coding is nerdy, boring, or mostly for boys. Thankfully, coding games such as Light-bot or Bee-Bot are great starting points that are approachable for both genders and teach basic coding functions.
Its not about the syntax
Knowing how to code a specific programming language is not a requirement to teach coding. Teaching the principles of coding can start with just a few “unplugged” activities such as the PB&J Challenge. Start by asking students to write down the directions for making a peanut butter and jelly sandwich. Then, follow their precise directions with a demonstration. Take the directions literally – much like a computer would. (Warning: You may have a big mess if proper specific directions aren’t given!) This introductory exercise will demonstrate the importance of crafting clear, easy to read code, and also serves as a great writing activity.
Another way to teach coding, before touching a device, is to role play the concepts of coding. Robot Friends is a great activity where students must communicate how to stack cups in a certain formation by just using arrows on a paper. This models how computers read code written in step by step and logical way.
When it does come time to turn on the devices, Scratch is a free web based tool that uses only drag and drop commands to layout a program. Students can create everything from a cat walking across a screen to complex games. Hopscotch, similar to Scratch for the iPad, is also free and allows students to create and share their own programs.
The goal of teaching coding is not to make every student into an app developer, just like teaching writing or art does not make every student a journalist or a painter. Coding empowers students to think logically and critically, to collaborate, and to create meaningful learning.