Education ∪ Math ∪ Technology

Programming for kids

I was recently asked about some programming environments I’ve used with students, and I thought I might as well compile a list of them, as well as some environments I’ve considered using.

Younger students:

  • Blockly

    Blockly sample
    (Image credit: Blockly

    Blockly is an open-source online programming environment developed by Google. It is currently very much a work in progress, although the language itself seems pretty stable, getting it to a state of usability for a group of students is not for the faint of heart. I mocked up a version of Blockly that resembles some aspects of the Logo programming language that I used with kindergarten students.


  • Turtle Art

    Turtle Art
    (Image credit: Sugar Labs)

    Turtle Art is a derivative programming environment of Logo, having been heavily influenced by the Logo programming language, and developed into a visual block version of it. It is multi-platform, and free to download (well sort of free – you need to email the developers of the program and request a download link for the program). I’ve used it with third and fourth grade students with some success. Turtle Art actually comes installed on the OLPC laptops.


  • StarLogo TNG

    StarLogo TNG is the extension of the original Logo programming into a 3d world. From their website, "StarLogo is a specialized version of the Logo programming language. With traditional versions of Logo, you can create drawings and animations by giving commands to graphic "turtles" on the computer screen. StarLogo extends this idea by allowing you to control thousands of graphic turtles in parallel. In addition, StarLogo makes the turtles’ world computationally active: you can write programs for thousands of "patches" that make up the turtles’ environment. Turtles and patches can interact with one another — for example, you can program the turtles to "sniff" around the world, and change their behaviors based on what they sense in the patches below. StarLogo is particularly well-suited for Artificial Life projects."


  • Hopskotch

    Hopskotch is an iPad, which is still in development, which allows children to do block programming in a very similar fashion to Scratch, Turtle Art, and other programming environments. I’ve not used Hopskotch myself to verify that it works.


  • Scratch

    (Image credit: Chris Betcher)

    Scratch is probably the most well known program for programming with kids. It has the same basic block structure that Turtle Art uses, but it has some additional features (ability to customize icons, object based programming) over and beyond the Turtle Art feature set. It can be quickly used to create simple animations, which is an attractive feature, but I found it harder to create simple geometric shapes than it is with Turtle Art.


  • Move the Turtle

    Move the Turtle Screen shot
    (Image credit: Move the Turtle)

    Move the Turtle is an iPhone/iPad app. It has a feature set very similar to Turtle Art (although somewhat reduced programming functionality). One thing that is compelling about it is that it includes a series of tutorials through puzzles which means that students without the support of a teacher can play around with the puzzles and learn how the application works. Obviously there is a certain amount of playing around necessary with any programming environment in order to learn it, but the tutorials Move the Turtle provides are useful when students get completely stuck.


  • CoffeeMUD 

    Coffee Mud screenshot
    (Image credit: Coffee MUD screenshot)

    Coffee MUD is easily the most difficult of all of the programming environments listed here to set up, and certainly amongst the most complicated environments to use. Coffee MUD is an online multi-user dungeon environment which means that it is both a somewhat collaborative game that students can play (and build their literacy skills in) and create.

    How Coffee MUD works is that it provides a server to which each student connects using some client software (recommendation: Jaba Mud client). While playing Coffee MUD, students navigate through a text based world, moving from room to room, and interacting with objects and non-player characters (NPCs) within the game. Many MUDs have no combat at all and have users interact with each other (social role-playing) or with the digital world provided via quests that the users solve.

    It also provides a way to interface (through a web browser) to the code that runs Coffee MUD and let trusted users add rooms, objects, and NPCs, as well as add a specialized coding system to allow players to interact and change these objects, rooms, and NPCs during the normal course of play.

    One enormous advantage I see with Coffee MUD is that the system is flexible and stable enough to potentially allow an entire school to interact via text in a virtual Coffee MUD world. While obviously this interaction shouldn’t come at the expense of face to face time, it could replace the traditional book report (create a virtual version of the story of the book instead!) or some creative writing time. For example, it would be an interesting interaction of the 7th graders attempt to create a portion of the game that the 3rd graders then play in.

Older students:

  • Alice

    Alice logo
    (Image credit: Alice 3 logo)

    I’ve not used Alice myself (except in a rudimentary way to test it out a bit), but I have heard some good things about it. One strength is that it relies on building object based programming with students, which is much more powerful and flexible than more traditional procedural based programming. From the Alice website:

    "Using an innovative 3D programming environment that makes it easy to create animations or games, the Alice Project seeks to provide tools and materials for a conceptual core of computational thinking, problem solving, and computer programming.

    The Alice Suite of educational tools is designed to support teaching and learning across a spectrum of ages, grade levels, and classes in K-12 and in college or university courses."

  • Python

    Python is both a command line programming language, and a language that can be used to build web applications. Many of the web applications created by Google are powered by Python. It’s not an especially new programming language, but the benefit of this is that there are an awful lot of great resources out there to learn how to program in it. See, for example, this excellent online tutorial.


  • Visual Python

    From the website for Visual Python (which I have successfully installed and played with myself): "VPython is the Python programming language plus a 3D graphics module called "visual" originated by David Scherer in 2000. VPython makes it easy to create navigable 3D displays and animations, even for those with limited programming experience. Because it is based on Python, it also has much to offer for experienced programmers and researchers."


  • JavaScript

    JavaScript is actually a pretty difficult language to learn because it requires an understanding of HTML and CSS first. It is probably best learned as a companion piece to making HTML websites more interactive. It also happens to be the base language for the scripting language Google uses for their Google Apps scripting environment, which means that students could potentially learn some JavaScript through programming directly in their browser. Students who want to learn JavaScript will also want to learn HTML, a mark-up language that JavaScript is often used to give dynamic capabilities.

  • See also: