I have started to see if I can get my 7 and half year old son interested in programming. This has been quite an educational experience for me. I have always had fond memories of myself self-learning GW-BASIC as a kid in the early 80s. So I was on the look-out for a modern way to teach programming for the young minds.
I started with the usual suspect of MIT's Scratch project. However for some reason, beyond structured learning through tutorials, my kids were not too attached to the setup there. I was finding that the environment was too abstract in some sense - for example it expects you to be familiar with messaging passing techniques to do any form of mildly interactive programming. Regardless, it is a good starting point.
Similar to Scratch, the GUI based programming available with Lego's Mindstorm EV3 got my attention. Unlike Scratch, this can be an expensive venture but the physicality of actually moving parts can help connect young minds with programming concepts. And it can be quite fun if you know what you are doing. Unfortunately EV3 still requires quite a learning curve if you want to make something on your own and may be best kept for the pre-teen group.
Talking about expensive ventures, Digital Youth has a catalog of various online learning courses, including couple of Minecraft programming courses. I enrolled my kid to the Mod Design 1 course since he was into Minecraft. I appreciate the concept of the effort and the material put together is relatively well thought-out. But the course definitely needs strong adult supervision who is familiar with the subject matter. There is a lot of copy-paste style of programming here and they fail to go into deeper concepts. At the end of the course, I fail to see how a 8 year old can learn much programming with this except learn some copy-paste trickery and use GIMP to do basic image editing.
Trying to relate to the way I started learning programming, I kept looking for something rather down to earth that is easy to experiment with and simple enough to learn quickly while not limiting what you can do with the language. Something like BASIC. Then one day a google search led me to BASIC 256. It is a very interesting, free small program that is really very easy to grasp and let kids create relatively sophisticated programs without the kind of very constraint environment like Scratch.
More recently, I can come to discover another platform called Kojo that is similar to BASIC 256 but has more capabilities largely due to a more sophisticated underlying language called Scala. It seems to capture the essence of self-directed learning environment while leaving open how far you can take it. This is my current recommendation for 7 to 10 year old first-time programmers.
Some other notable tools and programs I have also tried and found useful:
I started with the usual suspect of MIT's Scratch project. However for some reason, beyond structured learning through tutorials, my kids were not too attached to the setup there. I was finding that the environment was too abstract in some sense - for example it expects you to be familiar with messaging passing techniques to do any form of mildly interactive programming. Regardless, it is a good starting point.
Similar to Scratch, the GUI based programming available with Lego's Mindstorm EV3 got my attention. Unlike Scratch, this can be an expensive venture but the physicality of actually moving parts can help connect young minds with programming concepts. And it can be quite fun if you know what you are doing. Unfortunately EV3 still requires quite a learning curve if you want to make something on your own and may be best kept for the pre-teen group.
Talking about expensive ventures, Digital Youth has a catalog of various online learning courses, including couple of Minecraft programming courses. I enrolled my kid to the Mod Design 1 course since he was into Minecraft. I appreciate the concept of the effort and the material put together is relatively well thought-out. But the course definitely needs strong adult supervision who is familiar with the subject matter. There is a lot of copy-paste style of programming here and they fail to go into deeper concepts. At the end of the course, I fail to see how a 8 year old can learn much programming with this except learn some copy-paste trickery and use GIMP to do basic image editing.
Trying to relate to the way I started learning programming, I kept looking for something rather down to earth that is easy to experiment with and simple enough to learn quickly while not limiting what you can do with the language. Something like BASIC. Then one day a google search led me to BASIC 256. It is a very interesting, free small program that is really very easy to grasp and let kids create relatively sophisticated programs without the kind of very constraint environment like Scratch.
More recently, I can come to discover another platform called Kojo that is similar to BASIC 256 but has more capabilities largely due to a more sophisticated underlying language called Scala. It seems to capture the essence of self-directed learning environment while leaving open how far you can take it. This is my current recommendation for 7 to 10 year old first-time programmers.
Some other notable tools and programs I have also tried and found useful:
- Microsoft Project Spark (Based on the older Kodu program) Fancy graphics with a basic programmable environment. Great concept but may be too complicated to do free-style learning.
- Alice 3D based programming - similar to Scratch but more complex. Can be a good learning platform for teens and youth.
- Greenfoot is a free Java based learning environment that can be a good next step once the learner is comfortable with things like Kojo.
- Tynker is another interesting commercial online platform to learn while having fun. My experience with my kid was similar to trying to learn with Scratch - great at start but limits true creativity.
Any other recommendations?
Comments