Syntax is a royal pain in the neck for beginning programmers. For a lot of kids learning computing or programming syntax is the single largest hurtle. It’s hard to teach both a new (programming) language and a new way of thinking and problem solving at the same time. This tends to be a big stumbling block for teaching a lot of basic computing concepts. For years there have been tools developed that remove syntax from the equation. Alice and Scratch are probably the most well-known and popular of these tools. But there are other options and I find that many people don’t know about them all. I’m not sure I know them all but I do know something about a bunch of them. I thought it might be useful to list the ones I know about to help others find what might work for them. Feel free to tell me about any I am missing BTW. I’m always looking for new things to try.
All of these tools have some great features and either university or private research behind the development. Curriculum for them can be found through their web sites or Internet searching. Textbooks exist for some of them as well. They’re listed in no particular order so check out something new to you.
Alice Alice is a 3-d environment from Carnegie Mellon. It is probably the most popular and best known of all of these tools as CMU has been promoting it for some years. It can be a bit resource intensive but the ability to create 3D worlds is a big plus. The latest version, Alice 3.0, allows users to export to Java programs. This makes Alice very popular with APCS teachers.
Kodu is a coding environment originally developed by Microsoft Research for the Xbox 360 but now also available for Windows PCs. It is highly graphical with a simple When/Do model of programming. Designed for younger students (8 is the target age) it is very usable by precocious younger students and powerful enough for older students.
TouchDevelop is a little different from the rest. It is not so much a drag and drop programming language as a bridge between them and a text based programming language. The syntax issues are largely gone because you can only add legal commands. It is also developed to be programmed without a keyboard using touch (or a mouse). It works on any device with a good web browser and can take advantage of things like accelerometers on most of them as well. You can also use it with arduino and the BBC micro:bit
Scratch Scratch was developed at MIT at the Lifelong Kindergarten Research Group. This 2D platform is less resource intensive than Alice and Kodu. The Scratch web site with its sharing and social abilities really adds to the value of the Scratch platform.
Scratch Jr is a version of Scratch for even younger children.
Beetle Blocks Visual Code for 3D Design - Beetle Blocks is a graphical blocks-based programming environment for 3D design and fabrication.
Snap! (formerly BYOB – Build Your Own Blocks) Snap! nee BYOB is an expansion of Scratch that has been developed at the University of California at Berkeley. It adds new blocks and OOP features. It’s being used by a number of AP CS Principles pilots. Snap 4.0 is currently in early beta but the cool thing about it for many schools is that it is completely web browser based so no software installation.
App Inventor for Android Think about App Inventor as being Scratch for developing Android phone apps and you get the basic idea. While not strictly Scratch is was developed by people from both Google and MIT. It resides at MIT these days and is being developed there using ideas from Scratch, Blockly and other sources as a teaching language. For students (and their teachers) who want to get into phone apps it is about the easiest tool there is. It is mostly web based as well.
Tickle is a fairly new product (Released: Mar 24, 2015 on iTunes) on the Scratch model. “Tickle is the world's first app that enables anyone to program an air drone. You can now program the Sphero robotic ball, Parrot mini quad copter, and Philips Hue lighting system, all wirelessly right from your iPad.” I don’t own any of the supported devices to try it out. Let me know if you do and what you think of it.
Squeak eToys is the grand daddy of all these tools. Designed by Alan Kay as an implementation of SmallTalk it has influenced all the block languages that have followed. It is still being developed and is quite current. While not as well known, in my experience, as some of the others it is well worth looking at seriously. [Note: I left this out of the first version of this post for which I apologize. I really meant to include it.]
Daisy the Dinosaur is a free iPad app for introducing some very simple programming to young people. It is very basis and very limited right now. I don’t know much about it but if you have an iPad and younger children it is worth a try. It may lead to something more like Kodu or Scratch or Alice as time goes on and they want more. Not many of the other tools work on the iPad other than in the browser so this may be a fun app for many. Thanks to Doug Peterson for the link (Exercise Makes You Grow)
Hopscotch is another iPad app from the same people who created Daisy the Dinosaur. It’s a lot like a very basic Scratch and pretty limited as of this review (Hopscotch–Visual Programming for iPads). But it does run on an iPad and that makes it accessible to a lot of people.
Stencyl borrows heavily from Scratch but is focused on creating games. Games may be created and published for iOS, Android, HTML5, Windows and Mac according to the web site.
Move the Turtle (available for iPhone/iPad, $2.99): From what I read this is a lot like Daisy the Dinosaur. The object of Move the Turtle is to use commands to move the turtle though a series of puzzles.
Spherly is a web-based programming environment that allows programs to be written using a block language to control a Sphero robot. Project URL: http://outreach.cs.ua.edu/spherly/
Pixly provides a block language for exploring topics in media computation; particularly, the manipulation of pixels within an image to support red-eye removal, chroma key, etc. Project URL: http://outreach.cs.ua.edu/pixly/
PocketCode allows you to create your own games, animations, interactive music videos, and many kind of other apps, directly on your Android phone or tablet.
RoboMind RoboMind is software specifically developed to support technology education. By programming a robot, students learn about logic, computer science and robotics.
Waterbear Waterbear is a toolkit for making programming more accessible and fun. Having a visual language means you don't have to focus on learning a syntax to start programming.
aims to make it easier and more fun to program physical devices, particularly LEGO Mindstorms NXT robots. Enchanting is based on Scratch from the MIT Media Lab
Vizwik is a Social Learning Platform that helps Teachers quickly integrate digital literacy into their classrooms with easy to use KITS for making Mobile Apps. There is a review of it at http://mindsharelearning.ca/2015/04/01/vizwik-product-review/
Actimator is web based and games can be played on Android and iOS devices.