How to Teach Kids Programming
Our Simple Guidelines Teaching Kids to Code
Apple’s 2016 World Wide Developers Conference featured the inspiring opening video “Everyone Can Code” which showed people from around the world, many only student aged, demonstrating the incredible things they were able to build on a computer because of their ability to code. While the products of successful coding flash around the screen, a voiceover says, “it all starts with that first step.” However, for many, that first step can be problematic because coding can be a daunting endeavor both to teach and to learn. However, with new technologies burgeoning all around us, it’s obvious that coding is one of the most important skills that a student can learn and master in school. On this subject, former Apple CEO Steve Jobs said, “Everybody in this country should learn how to program a computer because it teaches you how to think.” In the video “How Can I Become a Good Programmer” featuring recognizable programmers like Mark Zuckerberg, Bill Gates, and others, it is asserted that “over the next ten years, there will be 1.4 million jobs in computer programming and only about 400,000 graduates qualified for those jobs.” Even though the opportunity is enormous, it can be extremely overwhelming to consider teaching programming to students. Therefore, let’s consider just a few, simple steps to get started.
- Upgrade your skills. Nobody wants to try teaching something that they don’t understand themselves. However, there is enormous personal and professional benefit to upgrading your programming skills, and there are resources available to do just that. Code Academy offers free online classes for teachers to upgrade their programming skills and to gain confidence in their own abilities before teaching it to their students. Additionally, it is important to remember that academic concepts are not conveyed merely because the teacher knows how to do them, and code.org has a plethora of helpful resources to help motivate students and to teach the practical applications of coding.
- Use your resources. As mentioned above, technology companies are clamoring for qualified employees to help develop their amazingly popular products. Therefore, numerous companies are investing in resources to train students in computer programming to add to the knowledge and skill of their future workforce. For students with iPads, Apple released Swift Playgrounds which is a free iPad app that teaches students the Swift programming language for Apple’s iOS platforms. To accompany the app, Apple released a curriculum guide to help teachers effectively deploy the app in their classrooms, and they have an abundance of resources on iTunes U to support both teacher development and student learning. While Swift Playgrounds is an incredible tool for teaching coding, it is limited to classrooms with access to iPads; however, for classrooms with access to other devices, Code Academy and Code.org provides a web-based platform for teaching programming. Code Academy and Code.org are free for all users and they allow teachers to create unique, trackable accounts for each student. Additionally, they provides teacher resources that include lesson plans, student activities, and skill sequences. Finally, for teachers without access to technology, Slate suggests teaching computational thinking, the thought processes behind computer programming, and Edutopia provides a fairly comprehensive list of activities for teaching students how to code without a computer. In short, teachers can develop students’ programming ability by preparing their minds with with the processes before they have access to the tools. Regardless of the resources available in your classroom, you can help students make meaningful gains in their programming ability.
- Be Practical. As with any academic concept, computer programming skills can be enhanced with practical projects to demonstrate and refine learning. For example, Northwestern University has compiled a list of five programming projects for Python beginners. These projects allow students to demonstrate the skills that they are developing and to begin finding solutions to the issues that arise when coding is put into practice. Moreover, the folks at Programming by Doing developed a series of practical programming challenges complete with levels and variations for different skill levels. By allowing students to transcend theoretical learning and to begin grappling with practical applications, they will most quickly and comprehensively develop their mastery of computer programming.
Clearly, the need for all students to have a developing knowledge of computer programming is a vital skill that they should have by the time they graduate high school. Of course, just knowing the need doesn’t inherently make it easier to implement in your classroom or your school, but you can begin making a difference by taking small, attainable steps like upgrading your own skills, utilizing the plethora of free, powerful resources, and by using problem-based learning projects to put the theoretical into the practical.
Check out STEM Education Guide for our favorite products & games that enable Creative STEM learning!