Visual Programming Language – Infograph and Introduction

This is an introduction and a flashback to the history of Visual Programming Languages. The infograph is further down the page.

blocky code

Blockly by Google. The latest VPL

Visual Programming Languages (VPL): When coding becomes a matter of manipulating graphic objects rather than text-based codes. WYSIWYG and an intuitive interface are key characteristics and syntax errors are impossible. This makes VPLs possible for kids at much younger age than traditional coding languages. Some VPLs are almost non-textual, empathizing kids who can’t even read yet.

But what is the big deal of letting kids code software at young age?

The reasons are many. Sir Ken Robinson talks about how school kills creativity. In kindergarten, kids have creative minds and tons of innovative ideas. But as soon as they start in school, they get formalized and loose these abilities. If we want them to keep them, we must enable them to express themselves through various tools, computers for instance. Also, if we let kids think as coders at a young age, the leap to a more complex programming language later in life might not be that hard. I’ve written about programming in kindergarten earlier, this post is about VPL.

Papert with LOGO Turtle robot

Papert with LOGO Turtle robot

Minsky-Papert-71-cSolomon-x640

Marvin Minsky and Seymour Papert

logo_mit

How to make a square with LOGO

To understand the background of VPLs you can’t ignore the man Seymour Papert. He is the one who came up with the theory of Constructivism. In 1969 he wrote Perceptrons with Marvin Minsky, who later played a key role in the science field of Telepresence.  After working with Piaget, Papert formed theory of Constructivism. Basically Piaget said, that what comes into a learners head is not the same as what comes out (Constructivism). Papert agreed, but added one element: Experimentalism. Without touching, feeling or sensing it in any way, we wont learn from it. Whether it’s by drawing it, making a clay sculpture, constructing it with LEGO bricks, or coding it on a computer.  In 1967 he designed the VPL called LOGO which became the first real mainstream VPL. By writing basic commands like “move 10 forward – turn up – move 10 forward” a little turtle would draw an angle of 10 by 10 pixels on the screen. Next step was the LOGO Turtle robot. Watch this video to get an impression of the robot:

legomindstormsnxtdrawingrobot

LEGO Mindstorms drawing robot. An evolution from the LOGO Turtle robot

In 1980 he wrote the book Mindstorms – Children, Computers and Powerful Ideas. If you haven’t read the book, I recommend the first chapter Gears of My Childhood (<– read it for free) in which he explains how his father, an auto mechanic, taught him about gears. Seymour he wasn’t good at math in school untill he learned to think in gears – just as he did when he watched his father work. LEGO named their cooperative project with Papert after the book, which took the LOGO Turtle robot a step further enabling kids (and adults) to code robot behavior using modern sensors and free imagination: LEGO Mindstorms.

robot_arm_telepresence

Minsky and his robot arm

For Marvin Minsky, the LOGO Turtle robot also meant the development of a remote controlled arm. When Minsky moved his arm, the robot arm did the same. He could control and grap things over distance. This invention was a major step towards his attempt to experience what he described as:

high-quality sensory feedback… future instruments that will feel and work so much like our own hands that we won’t notice any significant difference

OMNI Magazine, June 1980

This arm also kickstarted a whole new industry: Teleoperations in hospitals.

The MIT Media Lab building

The MIT Media Lab building

mitch

Mitch Resnick. The father of the VPL Scratch

At  MIT Media Lab, the VPL revolution continued. MIT Media Lab is famous for empathizing innovation and play (and giving prodigies like 15 yo Kelvin Doe from Sierra Leone a chance). In 1998 Michael Travers developed Behave! as a VPL to define the actions of a robot fish in a virtual fish tank. And finally, in 2003 Mitch Resnick from the Lifelong Kindergarten program at MIT Media Lab developed Scratch. This VPL was revolutionizing. He introduced a new coding paradigm by letting the sequences be represented by puzzle bricks. This new logic was easy for kids to understand, and especially the visual learners.  Many new VPLs use the same logic today. One example is the MIT App Inventor, allowing users to create Android apps in a Scratch-alike coding environment. Mitch Resnick recently hosted maybe the largest MOOC in history. The theme was Learning Creative Learning and he recommends various VPLs to empathize innovation. The sessions can be viewed here.

But there are people who criticize VPLs for not being suited to code larger software programs like operating systems. The biggest challenge VPLs faces, is the so-called Deutch Limit – VPL’s difficulty in showing more than 50 visual primitives at the same time.

Kodu code

KODU Game Lab by Microsoft

The latest big evolution in the world of VPL, is KODU Game Lab, developed by Microsoft for the Xbox. A text-based VPL was not an option (due to the Xbox controller). The result is a very intuitive symbol-based interface and great graphics, and it works even better on PC than Xbox. Kids at very young age can now produce 3D games.

I have produced the following infograph to give a good overview of a selection of VPLs and their special abilities. Click on it to enlarge and feel free to share.

full første

Links:

Scratch http://scratch.mit.edu/

Stencyl http://www.stencyl.com/

Pipes http://www.learnpipes.com/

Move The Turtle http://movetheturtle.com/

KODU Game Lab http://fuse.microsoft.com/projects/kodu

Blockly https://code.google.com/p/blockly/

MIT App Inventor http://appinventor.mit.edu/

LEGO Mindstorms http://mindstorms.lego.com/en-us/default.aspx

HyperCard http://hypercard.org/

Behave! http://alumni.media.mit.edu/~mt/behave/behave.html

Viscuit http://www.viscuit.com/

Tynker http://www.tynker.com/

Alice http://www.alice.org/index.php

Advertisements