How to Teach Kids to Program in Code
I met Keren on Twitter and asked her to guest post because I have an inkling that my youngest might be a video game developer one day. He has all the accoutrements of an coder. He plays soccer so he should be able to do the hackysack and ultimate frisbee thing. His classical guitar teacher has declared him a rocker and he wants to learn drums next. From a user perspective, he certainly is qualified! He finished all the levels of Angry Birds a year ago and now spends hours on Minecraft among dozens of other games. M.I.T. is near us and they have a summer day camp for kids to learn Scratch. I think my youngest would love that.
I also think it’s important to get girls exposed to STEM (Science, Technolog, Engineering and Math). Grasshopper and Sensei, my rising 7th grader, detests math but even she learned how to create a video game at camp last summer using an object oriented program. And, she actually enjoyed it.
So it was for my own selfish reasons that I requested this post from Keren. Thank you Keren! I hope you, my readers, find it as help as I do. Do you think your kids will want to learn to code? Do you want them to learn?
Learning to code is a huge opportunity for kids of all ages: coding teaches problem solving, gives a leg up in the job search, and even helps kids connect over a shared passion.
Programming, at its base, is about logic and reasoning. Kids will learn to solve problems of syntax and figure out how to say exactly what they mean, concisely, in learning to code. Coding teaches kids not to be afraid of experimentation. And, as many programmers know, code usually doesn’t work the first time, and one must go back to debug and tweak it without letting themselves get discouraged.
Along with an understanding of persistence, learning to code is a skill that can help anyone compete in the modern job market. With a shortage of computer programmers, the need for more developers will not go away anytime soon; it’s today’s kids that will be filling the demand for those jobs. What’s more, computers have a hand in almost every aspect of our daily lives. Thinking “computationally”, as some writers have coined it, is increasingly necessary to cultivate the next generation of Steve Jobs-like self-taught programmers who are not afraid to to embrace innovation. Not to mention get paid well for it.
Some parents fear that sitting in front of a computer all day can hinder social development for kids. While this is a valid point, kids don’t have to be completely consumed by computers to learn to code: everything in moderation, as they say. Plus, many code-learning tools designed for children and adults alike incorporate a social component to learning. Users can share products with each other and improve on other people’s projects. The programming world in general is built on a basis of cooperation, with developers improving languages, sharing code, and helping each other to answer questions on sites such as Quora. The Internet, in other words, is not a vacuum.
Other parents who object to the need for students to learn code argue that students don’t need to learn the inner working of a car in order to drive it. Unlike building a car, however, coding is a naturally democratic process: anyone can get their hands on it to give it a try. What’s more, cars have a defined purpose, which is to get someone from one place to another. The power of computers, on the other hand, which perform the most simple task of turning input into output, knows no bounds
Now, down to the good stuff. Here are the best ways to get your kids an exciting introduction to programming:
1) Scratch is a visual programming language developed for kids ages 6 and up by the MIT Media Lab. The sharing aspect is an important part of the Scratch community, so any of the over 1.7 million projects already created can be downloaded and remixed by any user. Scratch is available for free and runs on MAC, Windows, and Linux Computers.
2) Alice, similar to the visual idea of Scratch, was developed to give an exciting and positive first exposure to computer science based on object-oriented and event-driven programming. Students drag and drop graphic tiles in order to animate an object and create a program.
3) If I could use LEGO Mindstorms myself, I totally would. LEGO, the classic toy for kids (like myself) who wanted to build things rather than host teddy-bear tea parties has come out with a robot that you can program yourself. The robot includes sensors and motors and uses command-box rather than code programming. But if your kid is interested in the classic syntax-based languages, LEGO Mindstorms can be modified to work with third-party languages.
This is a post from Keren Baruch at Grovo.com, a field guide to the Internet where users can find everything from online security video tutorials to netiquette help.
image from terrapinlogo