5 Essential Tools for Teaching Children Software Development
Currently, in mid-2013, we still find people who say they’re fighting with technology and we can assume they have no idea of how electronic devices are used in daily tasks. Even though it's not necessary that everyone is aware of the exact process that runs in the backend of a smartphone or computer, it's very important to have a general idea about what’s going on in your processor device (some people don't even know that a processor is the device’s brain).
Programming as Basic Education
Before going any further on the importance of including programming in basic education programs at schools, let's talk a little about the basic sciences that currently are included in these programs.
We all know that in basic education we undergo subjects such as physics no matter if when you grow up you will become a physicist; in the same way we take subjects such as math, biology and chemistry regardless of whether we choose or not to be professional mathematician, biologist or chemist.
Why do we take these subjects no matter if we decide to be a doctor, architect or developer? The answer is simple. In our life we are surrounded by these issues, the World around us works according to laws of physics; mathematics is probably the most science with the most common uses in everyday life, businessmen use it, designers use it and even when we do grocery shopping sometimes you have to take some percentages, sums, divisions, etc.; biology is in our body, the plants and the animals that we are surrounded by; chemistry we find it pretty much in everything we eat, drink or have contact with.
If we realize the importance of knowing even the basics of these sciences, because we live based on them, then we must realize that life is also currently governed on the basis of technology as we are in touch with it all the time. We use it at work, school, our homes, even in our free time and more recently in our social relations. Most man-made things depend on technology and guess what? All technology is governed by code. We could say that the soul of every electronic device is its code and these machines would be useless without it. That's why learning the basics of programming is as important as knowing the foundations of natural science, no matter if in the future you’ll be a developer or a doctor.
Software development is not only about writing code, of course not, the main purpose of programming is to solve problems.
Being a developer means learning to think how to solve a problem effectively and efficiently. By doing so, new generations will acquire the skills to solve everyday problems swiftly and in the best possible way.
Let’s Turn Technical
Probably many schools think that in order to include programing classes in their subject programs they’ll have to invest a lot. Well, first of all an investment should be a must for any organization, including schools, if it’s not treated as an expense but as an investment it will incentivate growth. Second, we can find many programming tools in the web that are easily accessible or even available for free, and I’m not talking about just any software, I’m talking about very good programing tools.
If you wonder which tools are the best, here is my top 5 tool to introduce programming to kids:
Developed by the MIT Media Lab, Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating Scratch projects in a wide variety of settings, including homes, schools, museums, libraries, and community centers.
With Scratch, you can program your own interactive stories, games, and animations — and share your creations with others in the online community.
Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century.
Alice is an innovative 3D programming environment that makes it easy to create an animation for storytelling, playing an interactive game, or to share a video on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice, 3-D objects (e.g., people, animals, and vehicles) populate a virtual world and students create a program to animate the objects.
Hackety Hack is an open source application that teaches the basics of programming in the popular Ruby language. Hackety Hack offers an interactive tutorial that runs on Windows, Mac, and Linux operating systems. Hackety Hack gives students a solid foundation in the language so they can quickly and easily start building their own apps in Ruby.
Kodu lets kids create games on the PC and XBox via a simple visual programming language. Kodu can be used to teach creativity, problem solving, storytelling, as well as programming. Anyone can use Kodu to make a game, young children as well as adults with no design or programming skills.
With Lego Mindstorms Education students can build robots and use software to plan, test and modify sequences of instructions from a variety of real life robotic behaviors. They gather and analyze data from sensors using data logging functionalities such as graph views. Robotics is an exciting way to bring science, technology, engineering and mathematics to a classroom.
Note that these are not the only tools in the market, but these are the ones I considered as my top 5 according to my research. If you look up further you can find some interesting proposals.
*Tools reference from KQED
Organizations all over the world are looking to give the opportunity to students to learn how to code. Currently, there’s a campaign from some of the most important software developers of this time called CODE.org with the main message “Every student in every school should have the opportunity to learn code” and this is their video which I found very accurate. It would be awesome if we all had the opportunity to be wizards, wouldn't it?
About the Author
Abraham Coronel is a Computer Systems Engineer with more than four years of experience in the field and more than two years espacialized in Web Development. He currently works at iTexico as Front-end Developer for web applications in the mobile app lifecycle process.