Download.it search icon
Advertisement

Free software that allows you to code and create your own programs from scratch

Free software that allows you to code and create your own programs from scratch

Vote: (10,005 votes)

Program license: Free

Developer: Lifelong Kindergarten Group of the MIT Media Lab

Version: 3.29.1

Works under: Windows

Vote:

Program license

(10,005 votes)

Free

Developer

Version

Lifelong Kindergarten Group of the MIT Media Lab

3.29.1

Works under:

Windows

Pros

  • An intro to programming appropriate for kids
  • Simple design with color-coded blocks
  • Easy to share and explore Scratch projects

Cons

  • Not a full programming language
  • Cute interface may turn off older users

Programming has a reputation for being difficult, but Scratch demonstrates that the fundamental logic behind coding can be taught to children. It takes the fundamentals of programming and strips them down to the essentials. And while you presumably won't be using this software for complex and professional programs, it serves as a great way for new coders to learn the fundamentals and for more experienced programmers to prototype and test out their coding ideas. And since it was developed by MIT, you can rest easy in the pedigree that went into its design.

Just keep in mind that Scratch isn't a practical programming language so much as it's a practical programming tool. It will teach you how to code but not necessarily create meaningful code. Scratch promises that kids as young as eight years old can pick up on the basics of Scratch, while teenagers and even adults can accomplish some fairly complex processes.

The fundamentals of how Scratch works are pretty ingenious. Conditions, variables, loops, and other elements are defined as blocks that link together like pieces of a jigsaw puzzle or Legos. That allows the concepts to be visualized much more easily than they could with a simple text editor. Whether you're looking to transition into Javascript, Python, or Ruby, you can learn the basics of how they work with Scratch.

Even cooler is the fact that Scratch is backed by a pretty expansive online repository. A simple visit to the Scratch website will give you access to a whole slew of projects created by other users.

Anyone can play them, and uploading your own is a very simple process integrated right into the Scratch app. A lot of these are games, but they're also designed to help draw kids into learning. Not only can you play them, but you can also dig into the code to pick apart how they work piece by piece. If you decide to share your creations, it's as simple as pressing a button in the app, but you can also share your Scratch projects on Twitter or Facebook. Programs can also be embedded directly into a website for kids who might be putting together a project portfolio for class.

A simple glance at the main screen will make it clear pretty quickly that this is an app designed for kids. The "Scratch" in this app refers to the mascot - a cartoon cat that physically performs operations for you. Combine this with the fact that all of the different blocks are color-coded, and you're left with a solid code teaching device that doesn't require much instruction to use.

But just because you probably don't need teaching resources doesn't mean that there aren't teaching resources available. A long tutorial can guide you through all the fundamentals, and it's designed with the youngest of users in mind. Teenagers might find the tutorial a little tedious, but it's a pretty spectacular resource for the younger crowd. And despite not being a full-blown programming language, the things you can accomplish here are pretty extensive. The games you can create are complex enough that a kid could spend months or even years iterating on a singular idea. Although ideally, Scratch will serve as a stepping stone to more advanced coding rather than just a toy in its own right.

Pros

  • An intro to programming appropriate for kids
  • Simple design with color-coded blocks
  • Easy to share and explore Scratch projects

Cons

  • Not a full programming language
  • Cute interface may turn off older users