Thinking about ways for teaching children programming while also learning it yourself? Read on! Computers are a normal part of our lives now, and from our kids’ perspective, they have always been around. The other day my six-year-old daughter showed me how to do something on the iPad that I didn’t know could be done. A great way to level the playing field with them on the technology front, and at the same time spend some quality time learning a valuable skill, is to learn how to write programs for the computer.
Teaching Children Programming with Python
Some will think that teaching children programming is too difficult, but there are some excellent programming languages that are easy to learn, and some that are actually geared towards teaching children how to program. This summer my son (who is eight) and I will be learning Python, using a book called Hello World!: Computer Programming for Kids and Other Beginners, from Manning Publications. Python is an object oriented programming language, which means that programs are created by tying together objects, which the programmer can define.
Python was developed at MIT and can be downloaded for free. There are plenty of free resources online that provide tutorials to get you started with teaching children programming. Once you both get a handle on how Python works and what it is capable of doing, you can come up with your own projects. I have always found that having a goal allows you to focus your efforts in a more logical way. The child should be able to read and write, but that is really the only requirement. Python is easy enough that a child can use it, but powerful enough that the professionals at NASA and Google use it.
Other programs for teaching children programming
If you think that the idea of an object-oriented programming language is too difficult for you, there are also dozens of visual programming languages (VPL), such as Scratch, Squeak, or Stencyl. A visual oriented language allows you to create programs by dragging and dropping icons (that are really mini-programs) together to make larger, more complex programs. Some children are visual learners, so this method of programming will play more to their strengths so that they can focus on learning the logical structures of programming.
Scratch was also designed at MIT, specifically to teach children programming concepts, and is powerful and versatile enough that you can create science projects, multimedia presentations, and even games. Programs are driven by Sprites, which the user can draw with a simple editor. As with Python, there is a very active community and lots of online resources to back up learning. Scratch can be downloaded for free at http://scratch.mit.edu/. If you are looking for some tutorials, there are three available (beginner, intermediate, advanced) at http://learnscratch.org/ that is available on video.
If you think that perhaps that is still a bit too difficult for your child, there is something called Baltie. It is more of a tool than a programming language, but it teaches children the key concepts that are at the core of programming. Baltie is a wizard and he executes commands on his screen. Children quickly figure out what a computer is and what it can do, and their own logical thinking skills will improve. Children can create programs with Baltie, though not to the same level that they can with either Python or Scratch. This tool is really geared for children aged 4-6. It can be downloaded for free at http://www.sgpsys.com/en/download.asp.
Even if you are not technically savvy learning a programming language with your child is achievable. It is a great way to spend time together and create a shared interest, and programming has such versatility that it can be used to enhance your own interests.
Do you know of any great ways for teaching children programming? Share in the comments!