The programming languages listed here are designed for educators to teach children how to write computer program. Like theLogo programming language, they are typically graphics-basedso as to make the language attractive and relevant to kids. They are designed to teach children basic programming concepts and have some of the basicelements 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 alsowant to consider the commercial Lego Mindstorms sets which areused by many schools to introduce children to programming and robotics. The children have to build a robot using Lego blocks and use the PC toprogram the robot to do various tasks (which you can set) using a visual programming language. Traditional programming languages like Java and C arealso available for this robotics set. See theFree Lego Mindstorms NXT Compilers and Programming Languagespage for details.
Related Pages
- How to Create / Make a Website: The Beginner's A-Z Guide - display your work on the web
Free Educational Programming Languages - Teach Kids Programming
App Inventor is a graphical language that you can use to develop Android apps, ie, you can use it to create computerprograms for Android smartphones and other Android devices (eg tablets). You can make your apps either directly on yourAndroid smartphone or your computer (which may be running Windows, Mac OS X or Linux). If you design yourprogram on your computer, you'll be effectively creating the app using an Android phone emulator, which is installedalong with App Inventor. Like other visual programming languages, you essentially write programs usingblocks 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 simplegames that you can look at and modify. Note that the Windows, Mac OS X and Linux version requires that youhave Java installed on yoursystem.
Kodu is a visual programming language from Microsoft Research for Windows and XBox. The intention is thatkids, 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'redesigning a platform game). If you use an XBox, you can create games using only the XBoxgame controller. PC users can of course use a mouse and keyboard. At the time I write this, it looks likeyou will need to install the MicrosoftXNA 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 downloadand install the XNA 3.1 redistributable from my link. For all you know, a newer version of Kodu than theone I saw when I wrote this may require you to installXNA 4.0 or later instead of 3.1.If so, I'll appreciate if you will letme know so that I can update this description. Note: you should also be aware that this projectcomes from the research arm of Microsoft. Research projects (of any company) will not last forever; they may bediscontinued eventually or perhaps even 'upgraded' to become a commercial product. In other words, if you'replanning to use Kodu in the near future, you may want to download all the resources for it (including thelesson plans) now, while it's still available.
Greenfoot can be regarded as a subset of theJava programming language bundledwith a special integrated development environment (IDE), designed specifically to teach children (or more likelyteenagers 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 withan 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 onlything 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 yourProcessing code into Java.) Supported platforms include Windows, Mac OS X and Linux. Processing (ie, both the IDE andlibraries) 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 comeswith 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 moreadvanced than most of the other items listed on this page, and is not visually oriented (picture-based). As such, it's probably only suitable forolder students (eg, at least in the teens).
Alice is a 3D programming environment that allows kids to create animated movies and simple video games. It uses 3D graphics andfeatures a drag and drop interface. In this language, 3D objects like people, animals and vehicles populate a virtual world and the programmercreates a program to animate the objects. Alice programs include objects, methods, recursion and other features found in traditional programming languageslike C++,C# andJava.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 orLinux using the interpreter, or alternatively, be placed on a website as an embedded object. At this time, you can either upload yourapplication to the Scratch website or place it on your own websitewith the help of a Java applet that serves as the interpreter. If you arelooking for a programming language to teach your kids, this looks like a fun one that kids can easily take to.
[Update: 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 incomputer programming. This educational program features many of the control structures, data types (including structures) andconstructs from the traditional programming language. It works on top of the Microsoft .NET Framework, and is available for Windows only.
- How to Register Your Own Domain Name - how to get your own domain name
It will appear on your page as:
An overview of available graphical programming software tools. From supported languages to overviews of tools for Arduino and Raspberry Pi.
It wasn’t many years ago that using a computer meant literally learning a new language.
Innovations like the graphical user interface exposed basic elements like the filesystem to a wider audience, and the Internet has become increasingly democratized as user-friendly tools like WordPress, Youtube and Soundcloud allow anyone to create, publish and distribute content without writing a line of code. Today an explosion of accessible prototyping kits is making it possible for amateurs and hobbyists to sink their teeth into the growing Internet of Things by cobbling together connected computing projects.
But when it comes to making that hardware do your bidding, most tinkerers will still encounter a “language barrier”. Even the most user-friendly development boards need to be programmed; and even the simplest programming languages still look like alphabet soup to the uninitiated.
Fortunately, some developers have started to step in and provide user-friendly, visual programming tools. These platforms abstract away the functions, variables and idiosyncratic syntax rules of the underlying code and give users a simple drag-and-drop interface for building apps out of discrete chunks of logic (“When this happens, do that”) and widgets that can apply settings tailored to any specific piece of hardware.
Here’s a roundup of visual programming platforms that have some application to the Internet of Things—either because they’re tailor-made for programming sensors and embedded computers, or because they’re general-purpose platforms for programming in the languages that are compatible with those devices.
A closer look at the innovative no-code platform from DGLogik
DG Solution Builder
DG Solution Builder is a no-code application development platform featuring a graphicalDrag and drop the Internet of Things”
The NETLab Toolkit, or NTK, displays its prebuilt chunks of code as widgets — little boxes full of input fields, sliders, toggles, and other on-screen controls. Users choose widgets suited to the task at hand, set the parameters for each one, and connect them together in a logical sequence to create a program. NTK programs are compatible with the original Arduino and similar Linux-based embedded computing hardware. Philip van Allen, a professor at the Art Center College of Design, created NTK as a teaching tool and continues to expand the platform by releasing new widgets.
Programming Environment: Browser
Hardware Support: Arduino, Range of Linux Microscontrollers (Raspi, Galileo)
Project Page: Github
ArduBlock is a Block Programming Language for Arduino.
'The Ardublock software is a plugin which is added to the IDE of arduino and which allows the user to program in blocks of functions, a little as scracth4arduino, or to appinventor for android.'
Programming Environment: Destop Arduino IDE
License: GNU General Public License
Project Page: Github
Additional: Sparkfun tutorial, Videos
'S4A is a Scratch modification that allows for simple programming of the Arduino open source hardware platform. It provides new blocks for managing sensors and actuators connected to Arduino.'
License: Scratch is licensed under GNU General Public License V2 (GPL2)
Additional: Video, Wiki
'Drag & Drop Programming you can touch”
Programming Environment: Desktop
Hardware Support: Arduino
Additional
- miniBloq - Arduino
- Visuino - Arduino
“Visual, real-time, agent based programming for Arduino. Now available for Windows, Mac, and Linux.”
'Work with live connections to your Arduino, when your program is done it can be compiled to run'
Additional: Docs, Library, Tutorials
“Modern Toolsets. One Workspace.
Additional: Support Doc, Overview Video, Data Source Input
“Unlock the power of your IoT data by prototyping, building and hosting applications with Flow Designer'
'AT&T Flow Designer is an intuitive visual tool that enables you, the IoT developer, to create your prototype, iterate and improve through multiple versions, then deploy your application.
Flow Designer IDE: fully hosted, Node-RED based programming environment with ability to maintain versioning, publish and run solution on AT&T IoT PaaS. 'Do something' with the data, create an application that is ready for end users to consume'
Pricing: Free Developer Account - Pricing page
Additional: Docs
“A professional tool to build robust IoT applications”
Reactive Blocks is distributed as a plug-in for the Eclipse integrated development environment. Its preprogrammed code blocks are designed around large-scale Internet of Things applications, such as sensor networks, home automation and industrial monitoring. Reactive Blocks also touts itself as an ideal solution for “gateway” applications — programs, running on hardware like wireless routers, that process incoming data from local sensors and devices. These gateway apps can then make decisions without having to pass all of the raw data on to a remote cloud server, a concept known as “edge” or “fog” computing.
Programming Environment: Eclipse
Underlying Code: Java
Hardware Connections: Modbus, Serial I/O, Raspberry Pi GPIO, Berryclip for Raspberry Pi, Gertboard for Raspberry Pi, USB Camera
License: Eclipse Public License (EPL) - Details
Additional: Reference Docs
'Drag, Drop, Build.”
'Introducing GraspIO part hardware and part software with drag and drop way to program electronics using iPhone, iPad or Android. GraspIO is a smart development board that makes building electronics projects easy, fun and accessible.'
Pricing: N/A
Programming Environment: Cloud
Hardware Support: Arduino, RasPi
“Ideas in real time”
Wyliodrin is a web-based service that aims to be sort of a one-stop shop for easily programming IoT devices. Users can select from a variety of programming languages, then use the visual drag-and-drop interface to build their code. Like Scratch, Wyliodrin’s code snippets fit together like puzzle pieces. The platform is compatible with many popular kinds of prototyping hardware, including Arduino, Raspberry Pi, Beaglebone, Grove, and several Intel products.
Programming Environment: Browser
Hardware Support: Raspberry Pi and Intel Galileo
Price: Free account: uses one board and create 3 applications >> Ultimate account ($50/m): use 250 boards and create 250 applications
Additional: Video
“The easiest way to create a powerful Internet of Things”
'Visual App is a visual development tool that enables your own or 3rd party hardware, services, data, devices, APIs, protocols and applications to interact easily. They come in the form of elements and act on the same level. Simply drag and drop the elements and make inter-connections to make things play.'
Price: Free (with company charging for their hardware device Zenobox)
Programming Environment: Browser
Additional: Video
Additional Tools
C Programming Language Software Free Download For Windows 7 32 Bit
- miniBloq
'An open source graphical programming environment for Multiplo™, Arduino™, physical computing devices and robots.' - Blocky
'Blockly is a library for building visual programming editors' - RaspLogic
' RaspLogic is a software that want to make a simple, user friendly and cheap way to control things in every building.' - Noodl
'A design tool for interactive experiences' - Wia
'Any device. Any application. One cloud.'