Scratch has been built by MIT Media Lab and has been translated into almost 100 different languages. It's a project that helps children create stories, games and animations, and then share them with the world. In a nutshell, Scratch is a block-based tool that allows kids to learn the basics of programming in an interactive way.
People have shared over 40 million different Scratch projects, so your children will surely find at least a few interesting applications that they can "remix". Yes, Scratch encourages DJ-like remixes; it's just that mixing is done using program features, and not sounds :)
The application is almost two decades old, and it has been created with the goal of helping kids create simple programs. People who have used it in the past specify that it is much easier to learn Python and/or Java after using Scratch. The current version is based on modern coding standards (HTML5 & WebGL) and can run on Windows, macOS, Linux and Android.
The recently released 3.0 version has got lots of new features, allowing children to create music, convert their texts to speech, make use of video sensing, and more. While most people utilize Scratch to create games, lots of children use it to build various animations, interactive stories, and so on.
The program's interface has three main sections: "stage", "blocks", and "coding". The stage is a window that shows what happens when the project is run. It's got a resolution of 480x360 pixels, with coordinates ranging from -240 to +240 on the X axis and -180 to +180 on the Y axis. Kids can assign commands to the desired sprites, can change their aspect by accessing the "costumes" tab, and then see their behavior on the stage. The "sounds" tab allows children to add sounds and/or music to a sprite.
Scratch can utilize its built-in library of sprites or user-defined pictures. The application includes these types of blocks:
a) Motion - moves sprites and changes their angles;
b) Looks – modifies the graphics properties of the sprite;
c) Sound – plays music and/or sound effects;
d) Events – handles various events that are assigned to groups of blocks;
e) Control – gives people access to loops, branch instructions, and so on;
f) Sensing – makes sprites interact with the user-created environment;
g) Operators - allows people to use various math operators;
h) Variables – lists all the used variables;
i) My blocks – this is the place to access your own custom blocks.
Scratch supports various extensions, which provide additional features. The extensions can be hardware-based, allowing children to control motors and receive data from LEGO EV3, for example, or they can be software-based, giving people the option to detect camera motion by making use of the "video sensing" feature.
If your kids love the idea of becoming programmers someday, you can help them learn the basics (and have fun while doing it!) by clicking the button below.