Teaching Kids Programming with Free Programming Languages

Teaching young students or even your own kids to learn or be interested in programming can be really daunting. However, there are free programming languages that are designed to teach children the basic concepts and elements required in traditional programming that you can use to get the job done quite easily. Most of these languages are graphics-based that makes them fun and attractive for young ones or even for adults who are absolute beginner in programming. So enjoy and teach your kids programming with these free programming languages.

Alice is a creative "drag and drop" 3D programming environment that makes it easy for kids to create simple animations for story-telling, interactive games, or for sharing videos on the web. It can be a great teaching tool since it is designed to introduce students to object-oriented programming and at the same time allows them to learn fundamental programming concepts. In Alice's interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. Alice is free and open source, and is available for Linux, Mac OS X, and Windows.

More about Alice HERE

Scratch is an interpreted dynamic visual programming language that has a main goal of teaching programming concepts to children (preferably 8 and up) and letting them create games, videos, and music. The name Scratch was taken from the turntablist technique of scratching, and refers to both the language and its implementation. The resemblance to musical "scratching” is the easy reusability of pieces: in Scratch all the interactive objects, graphics, and sounds can be imported to a new program and combined in new ways. That way, beginners can get fast results and be encouraged to try further. Scratch has a built-in IDE, which produces interpreted code. The code can be run on either Windows, Mac OS X or Linux using the interpreter, or rather, be placed on a website as an embedded object.

More about Scratch HERE


BASIC-256 (formerly KidBASIC) is an easy to use version of BASIC programming language designed to teach kids the basics of computer programming. It uses traditional control structures like gosub, for/next, and goto, which help children to easily see how program flow-control works. It has a built-in graphics mode that lets them easily draw pictures on screen in minutes, and a set of detailed, easy-to-follow tutorials that introduce programming concepts through fun exercises. BASIC-256 is free and open source and is written using LEX, YACC, and QT (in C++).

More about BASIC-256 HERE

GameKit is a high level, object-oriented, imperative language, with branching constructs, specially designed for programming games. It has syntax to some extent similar to the Java/C/C++ family. There is no way to bind arbitrary variables. GameKit comes with an editor, a debugger, resource editors, and was created to teach a variety of computer concepts like artificial intelligence (AI), user interfaces (UI), event driven programming, object oriented programming, game programming, and computer graphics. This language is more advanced than those I've mentioned above, and is not visually oriented or graphics-based.

More about GameKit HERE


  1. Nice article, but you forgot Etoys and Squeak!

  2. I can't speak much for the other languages, but Scratch gets great feedback everytime I demo it. My 6 year old niece took to it really well, too.

  3. Python is a good starter language that I would recommend over BASIC. It is a language that is very readable, has advanced features that kids can grow with, but still has a very gentle learning curve.

    The free book Invent Your Own Computer Games with Python ( ) has several projects that can guide kids through learning how to program.

  4. SCratch rocks! Have you ever tried Toontalk or GameMeker for such purposes?

  5. AnonymousJune 06, 2011

    Have a look at RoboMind too:
    It is available in several languages and looks good.

  6. To bad the comments about logo in were outdated. The logo language has advance language eliments and sprite detection that was unknown by, where they were just pushing their language.