Free Educational Programming Languages
Free programming languages to teach kids programming
Free Educational Programming Languages / Free Children's Programming Languages
The programming languages listed here are designed for educators to teach children how to write computer program. Like the Logo programming language, they are typically graphics-based so as to make the language attractive and relevant to kids. They are designed to teach children basic programming concepts and have some of the basic elements required in traditional programming so as to provide a means for kids to learn and become interested in programming.
If you are an educator, and are evaluating programming languages for your students (or even your own children for that matter), you may also want to consider the commercial Lego Mindstorms NXT sets which are used by many schools to introduce children to programming and robotics. The children have to build a robot using Lego blocks and use the PC to program the robot to do various tasks (which you can set) using a visual programming language. Traditional programming languages like Java and C are also available for this robotics set. See the Free Lego Mindstorms NXT Compilers and Programming Languages page for details.
Free Educational Programming Languages - Teach Kids Programming
- App Inventor
App Inventor is a graphical language that you can use to develop Android apps, ie, you can use it to create computer programs for Android smartphones and other Android devices (eg tablets). You can make your apps either directly on your Android smartphone or your computer (which may be running Windows, Mac OS X or Linux). If you design your program on your computer, you'll be effectively creating the app using an Android phone emulator, which is installed along with App Inventor. Like other visual programming languages, you essentially write programs using blocks which you move around on your screen and connect to other blocks according to what you want to achieve. The site comes with a few tutorials that will help you get started with the language, as well as a few simple games that you can look at and modify. Note that the Windows, Mac OS X and Linux version requires that you have Java installed on your system.
Kodu is a visual programming language from Microsoft Research for Windows and XBox. The intention is that kids, even young children, can use it to create games. The Kodu site shows screenshots of a 3D racing game, a 3D adventure (or "storytelling") game, and a 2D side-scrolling game (such as what you may create if you're designing a platform game). If you use an XBox, you can create games using only the XBox game controller. PC users can of course use a mouse and keyboard. At the time I write this, it looks like you will need to install the Microsoft XNA Framework 3.1 redistributable (a set of software run-time libraries for developing games) as well. Incidentally, I suggest you read what the Kodu site says are the system requirements before you blindly download and install the XNA 3.1 redistributable from my link. For all you know, a newer version of Kodu than the one I saw when I wrote this may require you to install XNA 4.0 or later instead of 3.1. If so, I'll appreciate if you will let me know so that I can update this description. Note: you should also be aware that this project comes from the research arm of Microsoft. Research projects (of any company) will not last forever; they may be discontinued eventually or perhaps even "upgraded" to become a commercial product. In other words, if you're planning to use Kodu in the near future, you may want to download all the resources for it (including the lesson plans) now, while it's still available.
Greenfoot can be regarded as a subset of the Java programming language bundled with a special integrated development environment (IDE), designed specifically to teach children (or more likely teenagers and older) programming. Your learners can create scenarios or worlds that use various sorts of creatures (wombat, crab, etc), sound, etc, as the basis for learning Java.
Processing is a programming language specializing in the creation of images and animations. It comes with an integrated development environment (IDE) and allows you to write interactive programs that can generate 2D, 3D and even PDF output. Graphical output is not the only thing supported though; your program can handle I/O, that is, input and output, through the mouse, keyboard, files, etc. The language is built on top of Java, but does not require knowledge of Java. (It actually translates your Processing code into Java.) Supported platforms include Windows, Mac OS X and Linux. Processing (ie, both the IDE and libraries) is open source.
GameKit is a high level, object-oriented, imperative language, with branching constructs, designed specifically for programming games. In this language, "the world is a series of state bits and every action changes them" (from the website). It has a syntax somewhat similar to the Java/C/C++ family. There is no way to bind arbitrary variables. The author says that the language is "really just Scheme disguised by a different syntax". 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. Note that this language is more advanced than most of the other items listed on this page, and is not visually oriented (picture-based). As such, it's probably only suitable for older students (eg, at least in the teens).
- Alice.org - A New Way to Teach Programming
Alice is a 3D programming environment that allows kids to create animated movies and simple video games. It uses 3D graphics and features a drag and drop interface. In this language, 3D objects like people, animals and vehicles populate a virtual world and the programmer creates a program to animate the objects. Alice programs include objects, methods, recursion and other features found in traditional programming languages like C++, C# and Java. Platforms supported include Windows, Mac OS X and Linux.
Scratch is a programming language for kids ages 8 and up. It is a visual language that makes it easy for you to create animations, games, interactive stories, music and art. It 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 alternatively, be placed on a website as an embedded object. At this time, you can either upload your application to the Scratch website or place it on your own website with the help of a Java applet that serves as the interpreter. If you are looking for a programming language to teach your kids, this looks like a fun one that kids can easily take to.
- Kid's Programming Language (Defunct)
(Note: KPL is now defunct and is no longer available.) Kid's Programming Language (or KPL), as its name implies, is a programming language that is designed to get kids interested in computer programming. This educational program features many of the control structures, data types (including structures) and constructs from the traditional programming language. It works on top of the Microsoft .NET Framework, and is available for Windows only.
How to Link to This Page
It will appear on your page as: