A couple weeks ago I had the wonderful opportunity of teaching some basic coding to a class of Grade 5 and 6 students at a local elementary school. This was my first time doing anything like this and so preparing was difficult as I really had no idea what to expect. I had to come to the class with a fairly broad set of expectations and a flexible plan that could adapt to both the abilities and interests of the kids. I was preparing for the worst.
Thankfully all my concerns were unfounded and it ended up being much easier that I could have imagined. The kids were all excited to learn coding and they latched on to the material quickly. What was clear to me is that they loved it and they wanted more. What was also obvious is that coding is something that is currently missing from their elementary school curriculum. While I was glad to for the opportunity to share with the kids, it seemed unfortunate that they weren’t already getting taught these skills.
Coming away from this experience, not only was it obvious that the kids wanted more, but I also wanted more. It was a learning experience for me and a very rewarding one at that. If you are a developer, I would encourage you to look for opportunities in your local community where you can share your knowledge and expertise with kids.
One of the difficult parts in teaching kids how to code is figuring out exactly what to teach and how to teach it. When I was first learned how to program there were generally two programming languages that were used: Basic and Pascal. I learned both of those in my high school computer science classes and looking back I don’t think either of those options were really very good. Thankfully there has been a lot of research and development done in this area and today there are much better options.
Let’s take a look at some of the options that are available today.
Scratch is a web-based visual programming language. It was specifically designed by educators at MIT for the purpose of teaching kids to code. They even have Scratch for Educators, a section of their website dedicated to instructors who want to use scratch in both formal and informal learning environments. It is the language that I ended up using for this class of Grade 5 & 6 students and it worked out great.
One of the big advantages of Scratch is that everything can be done in a web browser and so you don’t need to install anything to get started. This is important when you are coming into a situation like I was in which they have a locked down computer lab and it would be a massive undertaking to get the IT department to install any custom software on the computers.
A great place to start finding out more about Scratch is this TED talk given by Mitch Resnick on “Let’s Teach Kids to Code”. Mitch is the head of the Lifelong Kindergarten group at MIT Media Lab which has been developing Scratch.
After watching the talk I would encourage to head on over to the Scratch website and try it out yourself. It’s completely free.
Hour of Code
The Hour of Code is a great resource for teaching kids to code. They have done all the hard work of preparing resources and lessons for anyone who wants to get started doing do. They have put together a variety of hour-long tutorials for students of all ages and so all you have to do is pick one and go for it. They even have a how-to guide for teachers, handouts to help spread the word and all sorts of other learning and promotional resources.
Several of the tutorials at the Hour of Code, such as the Angry Birds tutorial, uses a simplified version of Scratch called Blockly. In my limited experience so far this seems to the best place to start introducing kids to Scratch. Once they go through a couple of these tutorials they can easily graduate to the full Scratch environment.
The Coder Dojo is a global network of free computer programming clubs for young people. The basic idea is to get a bunch of young people together with some volunteer technical mentors and see what they can create. They do everything from Scratch to web development to programming the Raspberry Pi. When I first was introduced to CoderDojo I was inspired by how just a couple people started this amazing global movement. Each of the clubs are volunteer-led and community based and they have taken off at an amazing rate in the U.K., Europe and the United States.
The incredible thing about CoderDojo is they are filling in the gap that currently exists with the education system and computer literacy. It is a gap that I have recognized here in the Canadian education system but CoderDojo shows us it clearly is one that is world-wide. Instead of becoming overwhelmed by the scope of the problem, CoderDojo helps us along the path forward and for that I am very grateful.
Unfortunately for those of us in Canada we only have 5 clubs the last time I checked and there aren’t any clubs near me in Vancouver. However, this is a problem that can be solved and so I have started to look into what it might take to start one here. For me it would be a great way to continue what was begun at my local elementary school a couple weeks ago.
Computer Science Fun for Kids
This resource was sent in by Katie (thank you Katie!), who is a reader of this site and is currently learning to code. It’s a great one! It is called Computer Science Fun for Kids and it is a fantastic list of educational games and activities which teach you how to code while having fun.
This is a big and diverse list and so I invite you to check it out and explore the recommended resources. I think this is a wonderful starting point for anyone who wants to learn to code but feels intimidated by the prospect and is unsure how to begin. Also I think that when combined with the other resources out there, it is another way to keep learning and growing. Thanks to Katie I’m definitely going to be sharing these games and activites with my kids and I think several of them would work great in a group and/or classroom setting. So if you want to teach kids to code, check out this list and I’m sure you’ll find something you can use for your next lesson.
Those are just a few of the available resources that are out there if you want to find out more about teaching kids to code. If you are a developer getting involved in educating young people about programming is not only an opportunity to pay it forward but also a wonderful way to grow and develop in our craft. I know nothing that helps me grow and learn faster than trying to teach others. I hope you will take up the challenge!