In the past couple months, I've begun to teach my kids how to program. I have three young kids. The oldest is 9. I want to teach them to program because I learned how to program at an early age. While others had the good fortune of learning piano, I was messing around on Apple IIe computers learning Logo and BASIC in elementary school. A few years ago, I tried to have my oldest learn Logo. It did not work out too good. I guess it came down to lack of interest. She asked about it a few times, but never really got into it. For this second go around, I decided to change my approach to emphasize self-direction and initiative on her part. My role would be to facilitate her learning to program any way that grabs her interest. To find some programming tools for kids, I searched for "programming for kids." These three resources were pretty good:
- 5 Tools to Introduce Programming to Kids
- 7 Sites That Make Programming For Kids Fun
- Teaching your kids how to write computer programs
From these websites, I downloaded the software to introduce my oldest to the following learning approaches and here is what she thought of them.
- Scratch. While Scratch seems to be very popular, my daughter only used it for 10 minutes before getting bored. She went through the tutorial quickly and then decided she wanted to try something else. I think the interface was too young for her. She wanted something for "older kids." Scratch has a GUI interface in which you drag and drop code snippets.
- Hackety Hack. Hackety Hack teaches Ruby. I was hoping she would like this one because then she might learn a language that could be useful to her later on. She used it for 15 minutes and tried to go through the tutorials. I think the problem with this is that it is text based. The lack of images and graphics failed to hold her attention. I shouldn't have been surprised. One of the strengths of Logo is that the turtle provides young children with instant and visual positive reinforcement.
- Alice.org. Alice ended up holding her attention. Alice is like Scratch in that you drag and drop code snippets in a GUI interface. However, the interface is not as child-like and the programs create animations that can be output to video. The big difference here is that the tutorials really grabbed her attention. They quickly showed her how to drag and drop code snippets to move a dancer within an animation. She added speech bubbles to make her talk and interact with other characters.
Alice became her programming tool of choice. Sometime during the tutorials, she got the idea to create an animation using Alice for her upcoming science presentation. Completely self-directed, she must have spent over 40 hours carefully constructing her animation for the class. Mission complete!
Seeing his big sister doing programming, my son got interested as well. He is a bit younger, but fully able to grasp the concepts. I decided to try the same thing with him to see what programming environment would engage him the most. I introduced him to three applications listed in Marshall Brain's Teaching your kids how to write computer programs post.
- Auditorium. This is a neat little game that teaches basic problem solving. He enjoyed it for a few days.
- Light Bot. This neat little game teaches sequential thinking. The goal is to move a robot through a puzzle by specifying each individual action it must take sequentially. Once you chart the course, you hit "Go!" and watch the robot follow your directions. If your code gets him there, you complete the puzzle and move on. If he doesn't make the blue box, the robot starts over and you get a chance to modify your code. My son really liked this game. He is still playing it.
- Scratch This approach worked for my son. He liked the simple and colorful interface and made a few little programs with it to move the cat around and say little things.
Light Bot needs to get to the blue box.