Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.
-Bill Gates. Chairman, Microsoft
I recently had an inquiry from an astronomy-buff friend of mine who wanted to introduce his 3rd and 4th Graders to programming. Following Hanselman's advice of how many keystrokes do you have left, instead of just emailing him, I decided to write a blog post about it based on my experiences as a FLL STEM coach. It is always great to see people warming up to the idea that teaching computer science, programming or “coding” is an essential part of 21st century education, and that information technology is very much at the core of our modern economy moving forward.
It is also important to keep in mind that at an early stage learning to code is more about learning to think in a well defined (think algorithmic), concrete, and logical manner, than it is about learning the intricacies of a specific programming language or technology. What is coding, and How do you program a robot? are important questions to ask, and the goal of associated exercises should be to help children gradually learn to think in abstraction, followed by intuitively defining programming structures such as instruction flow, conditionals, iterations & loops, sub-routines, and recursion. Our goal as parents, instructors, and mentors is to ignite the passion in young learners with the underlying philosophy that when you learn to code you can make things happen on your computer.
If you are not yet convinced, I will start dropping names. Following video stars Bill Gates, Mark Zuckerberg, will.i.am, Chris Bosh, Jack Dorsey, Tony Hsieh, Drew Houston, Gabe Newell, Ruchi Sanghvi, Elena Silenok, Vanessa Hurst, and Hadi Partovi. Directed by Lesley Chilcott, executive producers Hadi and Ali Partovi where they talk about learning a new "superpower" !
Some Practical Step by Step Advice on Getting Kids Started with Coding
- Continue the Baby steps with Code.Org: Continuing with the Code.Org Minecraft Hour of Code makes for a great progression. Continue with Start Coding wiht Anna and Elsa and Infinity Play Lab as next. Depending on your child's interest, you can try out other Hour of Code Tutorials but make sure to keep it byte sized. When in doubt, flappy bird makes a great case for programming.
- Aliens FTW - Lets Try LightBot: Now we switch gears a little and start using LightBot (Lihtbot Hour of Code Flash Interface). This app is designed to works best with the tablets (iTunes - Apple Google Play) and provides interactive learning experience. Lightbot is a game that asks players to use programming logic to solve puzzles. Using Lightbot, kids gain a practical understanding of basic coding concepts by guiding Lightbot to light up all the blue tiles in each level. This is actually a great learning experience, teaching these young learners subroutines, optimization and recursion without them ever knowing the terminology. Kids learn how to sequence instructions, write procedures, and utilize loops along the way in this self-guided activity.
- Scratching your Brain: With Lightbot, the young learners have gotten a thorough understanding of how the process flow works with the little alien. Let's get them back to blocks with Scratch to create stories, games, and animations in the browser. Introduce them to Scratch Programming with Scratch Animate Your Name where students will animate the letters of their name, initials, or favorite word using Scratch. Scratch is huge with full circiculums around it so feel free to explore as much as you like. It will keep them busy for a while. Scratch is a free visual programming language which provides a stepping stone to the more advanced world of computer programming. Children can view existing projects available on the Scratch website, or modify and test any modification without saving it. Scratch allows users to use event-driven programming with multiple active objects called sprites. Sprites can be drawn, as vector or bitmap graphics, from scratch in a simple editor that is part of Scratch, or can be imported from external sources, including webcams.
- C3PO, BB8 or R2D2: We have done a lot of virtual stuff with screens, how about something more tactile and tangible? Robots makes for great learning toys and I am partial to NXT, EV3 and mindstorms due to their scalability in learning landscape; you can go very far with them. These kits provide an IDE, a ipad app, sensors and great building blocks to learn and
- This should be plenty to get you started. For advance course, you can try out Code.org advance courses, various other great resources, and last but not least, Lynn Langit's TKP (Teaching Kids Programming) Java Courseware.
Learning to program is exciting: it's stimulating, fun, develops new ways of thinking, and in a very short time you can build programs that will impress your friends and family! Discovering the joy of programming was the spark that started my professional life and impressed the teenage beauty who, 40 years later, is still the love of my life!
-John Hennessy, President, Stanford University