While coding your own apps may seem intimidating to those who have no coding knowledge, it is actually not that difficult, and at least scripting or changing code is pretty easy to get into. One of the things that may initially seem daunting is the wide variety of coding languages available. However, this is actually a good thing for those who want to get into it. Once you learn one coding language, it is positively easy to pick up other languages, and use the same approaches and principles learned for one language. In fact, going into the future, learning a programming language may be as essential as knowing to communicate with humans. Computer literacy now involves knowing how to make the tools required, not just using them, and it is good to have a head start.
In the 1960s, George Land and Beth Jarman conducted a series of tests to check the creativity of children at 5, 10, 15 years of age. The test administered to the children was a successful creativity test designed to select NASA engineers and scientists. The results of the landmark study was astounding, the creativity of people peaks at the age of six, and then reduces continuously to adulthood and beyond. Apparently, non-creative behaviour is something that can be learned. To encourage creativity, it is therefore best to teach children important skills for the future, such as coding, when they are young.
Code.org is a great resource for everyone to learn coding, and uses celebrities along with popular brands to instantly teach kids coding, without any sign up, registration or payment. For example, check out this simple game with an introduction by Lyndsey Scott, with Mark Zuckerberg and Bill Gates as “guest stars”, using Anna and Elsa from Frozen (https://dgit.in/frzncd). The app uses a simple drag and drop interface, where you can chain up blocks of colour coded snippets, then run the game in real time. Crucially, the app allows you to freely modify the parameters and repeatedly run the game, to understand how the coding actually works and what the computer is thinking.
Just about the best smartphone apps for young kids to get into programming is ScratchJr, which is based on the Scratch programming language developed by MIT, especially to help get kids into programming. Scratch is a kid safe social network that allows students as young as 8 to create interactive stories, games and animations, and share them with others. ScratchJr makes the same capabilities accessible to even younger children, ages 5 and up. ScratchJr also uses the tried and tested colour coded jigsaw block approach for teaching coding, and is available on all stores for free. The kids can import their own images, and also record their own sound effects for their creations. For iOS users, a particularly good app for kids is Hopscotch, where code blocks can be used to create simple games. The app encourages kids to use their own drawings to make games, and there are also video tutorials to help kids make games similar to popular titles already released on the app store. The finished games can be shared on a moderated and kid safe online community.
If you are interested in moving beyond the casual approach used by apps, there are dedicated platforms that conduct interactive online classes with age appropriate curricula. WhiteHat JR has courses designed for kids by top academics in computer science. The courses are for children between 6 to 14 years old, but cover advanced topics such as AI, python machine learning and AR. The classes take place three times a week, and involve one-on-one interactive sessions. The program encourages children to create their own apps, but also helps them in other areas of life as well. We asked Karan Bajaj, the Founder and CEO of WhiteHat Jr about the overall benefits for the kids if they learn to code. Bajaj tells us, “At a young age, the power to grasp and understand any subject or activity is higher than at a later stage in our lives. Teaching kids to code provides a well-structured way to introduce them to rational thinking and problem-solving skills. It also helps kids to improve their logical and analytical thinking and increases creativity and concentration – all of which are skills that can be applied far beyond the realm of computer science. When I was starting WhiteHat Jr., I did a fair bit of research on the subject from MIT and TUFTS and I found that kids use the fundamentals of logic, sequence, structure and algorithmic thinking to create tech products like games, animations and apps.” When asked for a specific example, Bajaj said, “there have been examples of kids benefitting from coding classes not just regarding computer related applications but even beyond them. For example one of our students, Aditya Jha, is top 10 in chess in his age group in the state and his father believes that coding classes have improved his ability in chess. We are also teaching various space science concepts where kids learn to simulate eclipses, blackholes and relativity using code which is helping them better visualise and understand these concepts. The trend we are seeing is coding skills triggers out-performance in complementary fields like math, chess, etc., besides overall improvement in creativity, logical and analytical thinking.” WhiteHar Jr is in the process of bringing its courses to schools around the country.
The Anki Cozmo is a prebuilt robot that comes with tiny cubes (that look very similar to the companion cubes from Portal). The robot can be programmed to manipulate these cubes and other small objects through an Android or iOS app. The Kano Computer is a child friendly Raspberry Pi 3 kit that comes in two variants, one with a programmable LED array, and a more expensive one where kids can actually develop interactive applications for a touchscreen tablet.
The touch version allows kids to programmatically create art, games and music as well. Both versions come with a series of coding challenges.
The Lego Boost sets gets children started with not only developing, but also robotics. There are two sets in the series, one for programmable droids from the Star Wars universe, and another versatile set that can be used to create five different robots, including a dancing droid, a cat and a construction vehicle. An app can be used to code these robots, which use the same technique as building Lego sets, with blocks as an abstract representation of snippets of code.
For older children, and actually even adults, the EV3 brick by Lego which forms the core of the Mindstorms series of robots is an extremely versatile programmable computer. On board is an Arm 9 processor with a Linux -based operating system. The EV3 has interfaces for USB, Wi-Fi and Bluetooth, and supports execution of MicroPython code on a SD card. The brick can be used to make and program all kinds of robots. While those interested can write the code line by line, the software allows users to create advanced programs, the application also offers a block based approach which is an evolution from the NXT kits.
While most of the resources mentioned above are as fun for adults, there are some resources that may not be suitable for very young kids. Scratch is a good and accessible place to start even for adults.
Code Maven by Crunchzilla is a simple, fun and relatively short interactive tutorial that allows you to learn JavaScript basics. Instead of starting with all the boring stuff such as statements and variables and so on, Code Maven puts you directly into the heart of things, showing how code makes things, and allowing you to change them on the fly. You pick up the coding concepts as you go along.
For something more advanced than that, there is Grasshopper, which was created by Google as part of their Grow with Google initiative. Grasshopper has a web edition, as well as iOS and Android apps. You are shown an example execution, that you have to match by creating your own lines of code. Now, you do not need to actually type the code in, although it is the more developer-y thing to do, you can simply drag and drop snippets of code as a casual user. It works just as well, and you understand the same concepts. Once you have “written” the code, you can execute it and check the results in real time. Grasshopper walks you through the fundamentals of Javascript, CSS and HTML5, the languages necessary to create your own web pages and web apps from scratch.
Python is a versatile coding language, used for many purposes, particularly data science. Picking it up now is an asset for almost any career path. The best place to learn Python is learnpython.org, which has a series of interactive tutorials that teach you this relatively advanced programming language (Javascript, CSS and HTML5 are scripting languages, and not actually programming languages per se). The lessons have a simple explanation, followed by an exercise that you can key in then and there. Scratch, Code Maven, LearnPython and Grasshopper together are more than enough to get you started with coding. All the resources mentioned in this section have been recommended by developers who are readers of the magazine.