The Invent To Learn Guide to Block Programming
For decades, the dream of programming computers without words or the ability to make syntax errors had eluded computer scientists. Today, is the dawn of a new era in block programming languages designed for children to learn with, control their world, solve problems, and express themselves.
Here are the languages worthy of your consideration. Each is a dialect of the Logo programming language. (Read What is Logo? by Seymour Papert)
We are deliberately rejecting commercial copycats of Scratch with puzzles, tests, scoring, and other mindless school-like activities built-in. (Tynker, Hopscotch, Code.org fall in this category) The point of a good programming language is that it should be usable for more than an hour or until your chicken nuggets arrive at Applebees. A good programming language has a low threshold and no ceiling; perhaps in the words of Scratch creator Mitchel Resnick, “also wide walls.”
Note: As of Fall 2020, there are exciting new programming options documented in New programming environments for learning
Scratch (Mac, Windows, Linux)
Scratch is a global phenomena designed for kids to remix culture via computer programming. Version 3.0 is browser-based and features a library of more than 45 million projects you can play, explore, remix, and reuse for your own purposes. Scratch even translates its language blocks between countless languages.
Pros: A real programming language with an enormous community built around it. Runs in a browser, on tablets, phones, and has offline editors. Has an extension library that adds new features. Great for animation, music, game design, and storytelling. Can be used to program LEGO WeDo robotics sets and micro:bits. Features are added judiciously and slowly.
Cons: Intended for children to learn on their own without adult intervention. Therefore, the language itself is not as powerful as others (such as SNAP!) Not as good for learning powerful mathematical ideas. For that MicroWorlds or SNAP! are a better option. Features are added judiciously and slowly.
- Scratch 3.0
- Download Scratch Offline Editor (see this page for older versions as well)
- Scratch Jr. for the iPad and Android
- The ScratchEd web site for educators
- Facebook Scratch educator group
- Two fine books written about Scratch for kids:
- Colleen Lewis’ library of Scratch YouTube tutorials
SNAP! (Mac, Windows, Linux, iPad, Android)
SNAP! is a browser-based version of Scratch created by Dr. Brian Harvey and Jens Mönig intended to be used to learn powerful computer science principles. It features first-class objects, recursion, and the ability to “build your own” blocks.
Pros: SNAP! is used to teach introductory computer science at UC Berkeley and as part of the Beauty and Joy of Computing Curriculum being developed to prepare high school students for the AP Computer Science Essentials (CS for non-CS majors) course/test coming soon. It works just like a Scratch, but is more powerful, is easier to extend via plug-in libraries of blocks, and runs on tablets. SNAP! is also a great way to program the Hummingbird Robotics Kit.
Cons: SNAP! projects can’t be shared in the web-based Scratch community. The cloud is occasionally unreliable, especially in schools. There are no cute sprites built into SNAP!, but your turtle can wear any shape you create or borrow, just like in Scratch.
- Run SNAP! now
- Snap4Arduino
- Check out the text and video based Beauty and Joy of Computing Course
- Use Devices with SNAP!
- Orbotix Sphero guide by Connor Hudson and Dan Garcia
- Lego NXT package by Connor Hudson
- Nintendo Wiimote package by Connor Hudson
- Finch and Hummingbird robots package by Tom Lauwers
- Parallax S2 robot package by Connor Hudson
- LEAP Motion by Connor Hudson
- Speech synthesis by Connor Hudson
- Arduino package by Alan Yorinks
Turtle Art (Mac, Windows, Linux, iPad)
Turtle Art is an ingenious software environment in which mathematical ideas become beautiful works of art. Kids from 5 to 100 immediately find objects to think with and explore powerful ideas as soon as they boot Turtle Art.
Pros: The elegance and focus of Turtle Art makes it possible to create art out of math without a lot of other interface or language distractions. Turtle Art is a limited set of Logo primitives. The software brilliantly saves the program and its artistic artifact in the same file. So, if you open the file in any other software, you see an image. Open it in Turtle Art, even by dragging a thumbnail from the Web and the code comes with the art!
Cons: The Java-based nature of Turtle Art makes it occasionally freeze while in-use. Wise Turtle Art programmers save often. You need to request the software from its creators.
Turtle Art web site (click on the email us link to request download instructions)
- Turtle Art Image Gallery
- Turtle Art tutorials
- Gary Stager’s Turtle Art activity cards created by Brian Silverman and Artemis Papert
- Early mathematics activities for Turtle Art by Gary Stager
- Turtle Art for the iPad ($9.99 US)
Beetle Blocks (Mac, Windows, Linux, maybe tablets)
Beetle Blocks is a browser-based graphical blocks-based programming environment for 3D design and fabrication. Use code to control a beetle that can place 3D shapes and extrude its path as a tube. Then make a 3D print! Beetle Blocks is based on Scratch and Snap! By Eric Rosenbaum (co-inventor of MaKey MaKey, Drawdio, and a host of other cool tinkering toys) and Duks Koschitz, with software development by Bernat Romagosa and Jens Moenig.
Pros: Program something in 3D and then print it on a 3D printer!
Cons: Beta software!
- Beetle Blocks web site
Google App Inventor (Android)
App Inventor, originated at MIT by a team led by veteran Logo pioneer Hal Abelson, allows users to create apps for Android devices. Creating an App Inventor app begins in your browser, where you design how the app will look. Then, like fitting together puzzle pieces, you set your app’s behavior. All the while, through a live connection between your computer and your phone, your app appears on your phone.
Pros: Kids who can make sense of Scratch or SNAP! can make working phone apps.
Cons: Android only. A bit more complex, especially on the design side. One never knows how long it will take for Google to lose interest in a product. Still listed as beta software.
- Try App Inventor
Turtlestitch (browser)
Turtlestitch is based on a browser-based educational programming language (Snap!) to generate patterns for embroidery machines. It is easy to use, requiring no prior knowledge in programming, yet powerful in creating nowels patterns for embroidery. It is usefull for designers to experiment with generative aesthetics and precision embroidery as well as tool for innovative workshops combining an introduction to programing with haptic output.
Turtlestitch web site
Blockly (Windows, Mac, Linux, tablets)
Blockly is a Google developer project. It is programmed in a browser and can be used to make apps that run on mobile devices or the Web. Blockly can produce its own blocks and output complied Javascript or Python code.
Pros: The ability to translate blocks into exportable code in Python or Javascript is powerful for power users. The open source community continues to expand and improve Blockly.
Cons: The open source nature of the software makes it hard to keep up with changes, improvements, etc. It is not intended as a learning language, but as a development one.
Blockly web site
StarLogo Nova (browser)
StarLogo Nova is a programming environment that lets students and teachers create 3D games and simulations for understanding complex systems. Using a programming language of colored blocks that fit together like puzzle pieces, StarLogo users create games and simulations to study diverse concepts in science and math – such as epidemiology, ecology, geometry, computational thinking, and more. StarLogo is free and runs in an Internet browser, with project sharing options – students can play games created by others, and teachers can use simulations developed by the StarLogo community to illustrate complex concepts. Users can create simple and large-scale simulations using the library of agents or importing their own custom sounds and Collada-format 3D models. Take advantage of StarLogo support materials to get started including:
StarLogo Nova web site
Turtle Blocks (Mac, Windows, Linux)
Turtle Blocks is an expanded version of Turtle Art developed by Walter Bender and a team at Sugar Labs. Originally intended for the XO ($100 laptop), Turtle Blocks may be run on a variety of platforms and can even control external devices.
Pros: More functionality than Turtle Art with a greater focus on mathematical problem solving than Scratch. Continuously improved and expanded.
Cons: May be a bit tricky to install on your computer and is a more complex system than Turtle Art. The interface may take a bit of getting used to.
- Turtle Blocks web site
Pocket Code is a version of Scratch that allows you to program on and for your Android device, even a phone. The creators have done a monumental job of making the software work with an assortment of external devices.
Pros: Works on Android devices and allows you to program on the very same device. Performs a whole bunch of really cool tricks. Has its own Web-based library of projects, apps, and games created with Pocket Code.
Cons: Only works on Android platform and I have yet to be able to install it successfully on my Samsung tablet.
- Pocket Code web site
Added! Thanks!
I second the StarLogo Nova! I am using it right now and hope to inspire students to “program the turtle” and make interesting things that they can think about and wonder about. There is some excellent curriculum being developed around it right now.
Great post. One more tool to add is StarLogo Nova. It’s based on Blockly and comes from MIT, similar to Scratch. My middle school students have been using it for science simulations and will use it to create games as well. It’s got a similar feel to MIT App Inventor but is browser-based. Most of our students have used Scratch in the past, so they’ve caught on very quickly and respond well to a more “grown-up” interface.