From Technology Consumers to Change Makers

Special Focus : Should We All Learn to Code?
Designing an Effective Training Program August 07, 2014

The digital age we live in dictates that educators provide students with the opportunity to learn to code. Coding is a significant skill because it allows you to explore and experience the digital world in its entirety. Learning computer science will benefit students in their future career or life path, as every field has some connection to computer programming. Digital technologies infiltrate our lives and industries to such a high degree that those who are unable to program will be disadvantaged. 
We need to prepare students to experience the digital world in its entirety. In his TED Talk, Mitchel Resnick, from MIT, highlights that labeling the youth of today as digital natives is misleading. The majority of young people are currently mainly consumers of technology, not creators of technology. They are called digital natives but they are not fluent with the technology. They are experienced users but not creators. He likens the situation to students being able to read but not write. Teaching students computer science equips them with the skills to fully utilize the technologies of the digital age. 
It might actually be a major disadvantage if you are unable to code or do not understand computer science. Douglas Rushkoff, Program or be Programmed, argues that as we gain a new technology civilization remains one step behind. The majority of people become fluent with the previous technology but not the new technology. True power, prestige, advantage and being an elite is gained from being fluent in the previous technology. In the digital age everyone is a writer, with social media, but not a creator of the actual technology. Before the digital ages the writers were the ones that were the elites. They had power as they controlled the media. In today’s age, the programmers have the power. Teaching students how to code and program provides them with the potential to become powerful and influential world changers.
Learning to code will most likely help students out in whatever career or life path they take. Technology is influential in all careers. Healthcare, the military, education, marketing, business, banking, fitness and pretty much any other industry is heavily influenced by technology. This determines that students who have an understanding of computer science but do not pursue a career in computer science still benefit. A doctor, a teacher, a banker or a scientist who can code is significantly advantaged. They can apply coding to their craft. Coders who work in other industries have the power to develop an application or program that may have the potential to revolutionize their industry. 
Kids should learn to code
Similar to the above, the main arguments why students should learn to code usually center around preparing students for future jobs. A skill shortage in the computer science industry determines skilled job seekers can walk into lucrative contracts. This trend is predicted to rise.
As discussed previously, the other aspect to the usual argument is that even students who do not work in the technology industry will also benefit throughout their lives and careers by learning computer science, as all industries now involve some component of programming.
While these arguments are perfectly valid, there are many more reasons why kids should learn to code. I have covered eight of these reasons previously. 
In summary they are:
1. Learning to code teaches you a number of life lessons.
2. Learning to code teaches you about learning and teaching.
3. Coding helps to think and problem solve when programming.
4. All school subjects become meaningful and related to the outside world for a computer science student.
5. Coding expands creativity.
6. You prepare yourself for success by learning computer science.
7. You can change the world with computer science.
8. You appear to have superpowers when you program.
Throughout the Coding Clubs I have been involved with I have observed similar developments in students. Learning to code benefits all types of students: the genius kids, all-rounder kids and even the disengaged kids. 
Instead of giving up in angry outbursts when problems got tough or when they made a mistake, coding club students started to persist, learn from mistakes, and realize that success is a curvy line. 
Instead of sitting at the back being unwilling to talk in front of other students, students were motivated to take a responsible risk and start teaching others the coding they were learning.
Instead of being argumentative when it came to group work the students realized that when teams work interdependently they can achieve great things.
Students who were learning to code started doing their assignments for other subjects. The essay on famous Australians was turned into a website or informative Scratch animations. 
Students gained so much confidence over the year that the ones who previously hated sport became valued members of the school rugby and Australian Rules football teams. 
There are heaps of reasons why kids should learn to code: future jobs, becoming rich, changing the world or appearing to have superpowers. My favorites are: learning to code teaches you to persist, overcome failures, and to not fear making mistakes. Coding teaches you how to work in a team, and to problem solve. It allows for self-study, self-exploration and self-empowerment. Computer science gives you a new avenue of creativity.
Here is how a teacher with no experience can start a coding club.
Choose a platform that suits your school and students: Scratch or MIT APP Inventor on computers, Hopscotch or Game Press on the iPad. 
There is an abundance of resources available to teach and learn Scratch. The Scratch Curriculum Guide is a fantastic starting point, as are the video tutorials, and the Scratch Cards. The Debugger challenges have students work out the bugs in Scratch programs and the 10 Block Challenge has students create a Scratch using 10 pre-assigned blocks.
I would recommend using a combination of the problem-solving apps, similar to the Move the Turtle style programming environments, and the creation apps. There are many problem-solving games out there for iPad but my favorites are Daisy the Dino for very young students, Kodable for early to middle-age groups, and Cargo-Bot for the older students.
Hopscotch: When it comes to creating and learning some programming concepts on the iPad Hopscotch is the number-one choice. Have students rebuild the Frogger or Paddle Board games that come preloaded on Hopscotch, or challenge them to program their character to draw a house.
SketchNation allows students to create Doodle Jump/Flappy Bird style games in a simple step-by-step fashion with their own sketches.
GamePress allows students to create high-quality games in the side scrolling, think Mario, and top down, think Space Invaders, styles.