The merit of teaching computer programming to children is now accepted worldwide. But what started with a single tool has now grown into an arsenal of tools at the disposal of students and educators.
But what do each of these tools do? Where do you start? Will your child get confused learning multiple tools?
Here are answers to some such questions, and a look at some of the most popular technologies today- Scratch, Code Studio, Tynker, MIT App Inventor.
THE COMMON THREAD THAT BINDS THEM ALL – VISUAL PROGRAMMING
All programming languages developed for children fall under a category called “Visual programming languages”.
Instead of typing out your instructions to the computer (writing a computer program, literally), all these instructions are available in the form of colored blocks in such visual programming languages. You simply have to drag and drop blocks of your choice one below the other and they snap together like pieces of a puzzle. So instead of writing a program, you are in fact assembling one!
This interface is simple to use, and it minimizes typing and hence typing mistakes. The student does not have to memorize the block names beforehand, as they are available on the screen, thus eliminating rote-work. The blocks are colored according to the type of actions they perform – for e.g., all blocks to move, glide and position objects on the screen are grouped under ‘motion’ and are of the same color, say blue. Similarly, commands that control how and when other commands are carried out – ‘repeat’ commands, ‘if-else’ commands, ‘wait’ commands are grouped under ‘control’ and colored yellow, and so on.
This enables a child to learn where to find commands based on the type of action to perform, and eventually remember automatically due to the color-coding.
FREE vs PAID TOOLS
One of the differentiating factors between these tools is whether they are free or paid. Most of these tools like Scratch, Snap!, MIT App Inventor are free. Some like Tynker have a free as well as a paid version, offering not just the tool, but also a paid course to help you learn.
COMPUTERS vs TABLETS
Scratch is based on flash, and uses Adobe Air, hence unsupported on android tablets and iPads. But the recent addition to the toolkit – Scratch Jr. which has been developed for younger children (ages 4 and up) is available on tablets. But Scratch has an offline editor that can be installed on a computer, hence internet access is not required to use Scratch once installed . There is also a browser based version which can be used.
The other tools – Code Studio, MIT App Inventor and are browser-based only, hence available on all devices. But they also do need access to the internet to use them.
Tynker has a downloadable App, as well as a browser-based interface, providing multiple options.
Online only – MIT App Inventor, Code Studio (Code.org) . These need an internet connection, and run in the browser. Nothing needs to be installed on the computer, since all projects created are stored online.
Online & offline –
1. Scratch is available both online and offline. It can run in a browser (it requires a flash plugin installation). Alternatively, the offline Scratch editor can be downloaded and installed on a computer. In this case, all projects can be created and stored on the computer itself.
2. Tynker is another technology that is available both online and offline. While the browser based version needs internet access, there is an app that can be installed on android tablets.
JUNIOR/SENIOR AGE GROUP
Tools like Scratch Jr., Daisy the Dinosaur , and Dash and Dot Robots are suitable for children under 8 years of age. These tools are available on tablets, since touch interfaces are very intuitive for younger children. Also, these tools further simplify visual programming languages by having blocks that have self-explanatory looks. This way, students don’t require to be able to read in order to use the blocks.
Scratch, Tynker, Code Studio, Hopscotch are all suitable for students 8 years and above in age. Their interface is simple enough, yet they provide many many programming possibilities. Concepts of variables and loops are introduced in these languages.
Advanced Tynker, Code Studio and Scratch activities are suitable for ages 11 and up. These involve concepts of broadcasting between characters for communication, cloning of sprites to create multiple effects, video and so on. MIT App Inventor, is again a very powerful tool for ages 11 and up.
KNOW YOUR PROGRAMMING LANGUAGE-
SCRATCH- One of the earliest visual programming language developed for children, its undeniably the most popular one. Developed by the Lifelong Kindergarten Group at Massachusetts Institute of Technology’s Media Lab in 2007, it paved the way for a variety of such tools to come up over the next few years. The current version of Scratch is 2.0, and an offline editor is available on their website for free download. It has a very active online community where students from all over the world can upload their work. The numbers say it all – over 9 million scratch projects are uploaded by children worldwide, on the Scratch website www.scratch.mit.edu . With a great variety of ‘sprites’ (characters/objects in the program), sounds and backdrops, Scratch provides children with endless possibilities for programming. Its the best first step to take when learning programming. The programming environment of Scratch is very similar to characters in a play taking place on a stage. This analogy makes it easy to understand for students. Scratch can be used to create animations, games, demonstrate scientific principles, and much more. (http://www.scratch.mit.edu)
MIT APP INVENTOR- This very powerful tool allows newcomers to computer programming to create software applications or Apps for Android mobiles and tablets. Originally developed and launched by Google in 2010, it is now maintained by Massachusetts Institute of Technology since 2012. It extends the horizons for students, as they learn a whole new way of programming, through design and development of apps – be it fun apps, games, or highly useful apps that solve a problem for the users. The tool is very powerful, and enables various features of the phone’s technology – like accelerometer, camera, bluetooth to be used in the Apps being developed. The App Inventor Forum is a very active online community and a platform to share creations. The apps created with App Inventor can be installed on android phones and tablets. Thus students get a sense of how apps can be developed to solve real-life problems. (http://www.appinventor.mit.edu)
CODE.ORG – Launched in 2013, Code.org is a non-profit movement aimed at increasing integration of computer programming skills in education. Their ‘Hour of Code’ initiative encourages anyone from any field, of any age, to try their hand at computer programming for an hour. It has drawn support from some of the biggest software corporations and universities alike. Their browser-based Code Studio offers introductory to advanced lessons to be taken to learn programming. Their sprite collection has a lot of very popular characters from animated movies, enabling children to create programs using characters they know about. The structured puzzle-like activities make the lessons very absorbing, and teaches new concepts at every level. (http://www.code.org)
Scratch, MIT App Inventor, Code.org and Tynker are a part of PrograMitra’s curriculum in the Junior and Senior Coders Courses. In addition to these, robot programming tools like Lego WeDo, Lego Mindstorms EV3, Compushak! and Dash and Dot are also taught. More about these robot programming tools in a separate blog coming soon.
Logo/ StarLogo – Though not a part of PrograMitra’s curriculum, this blog won’t be complete without the mention of Logo. It is one of the earliest programming languages for children, and is a part of many schools’ curriculum. It can be used to draw objects and perform mathematical operations on the screen. But the student has to type the commands vs drag and drop, and hence more and more students are turning towards the visual programming options available.
Here we are, with all these technologies at our disposal. So what are we waiting for?
Stop installing, start programming!