The Three Principles Of Programming - An Exhibition
Written by Mike James   
Sunday, 17 March 2013

The London Science Museum has some interesting new exhibits as part of its Codebreaker exhibition that demonstrate the three key ideas in programming - looping, conditionals and variables.

The exhibits were all  built by Hirsh & Mann and the brief was to create something connected to the progress in computing and the spirit of engineering and innovation. As it turned out, they selected three installations that demonstrate what the team rightfully identify as the key programming principles.

If you ask a working programmer what the three key programming principles are, you would probably get something about encapsulation, inheritance or whatever the latest high-level language trend was. Ask a computer scientist and they would probably waffle about recursive function theory. In other words, it is difficult to get a sensible answer from people too close to the subject matter.

But if you focus on what programming is about and what makes it different from other subjects, at the most basic of levels then  the idea of the variable, the loop and the conditional are the key primitives.

At the heart of each exhibit sat an Arduino - so no random 74 TTL logic chips here.



The one on looping has a spinning rotor with LEDs that create persistence of video patterns that visitors can control using 20 buttons.

The conditional display presents a version of Wolfram's cellular automata with the user able to set the rules.

The exhibit about variables is a mechanical tree with sliders to alter the angles.

The clever and perhaps daring part in this age of dumbing down is that the central display has a simplified pseudo code that highlights the current line being executed.

If you can't get to the exhibition then take a look at the following video which shows some of the construction details:


These are all great fun and very impressive to look at, but I'm not sure I agree that they get the fundamental concept over to the innocent viewer. Perhaps this isn't possible to achieve in a fun and enteratining way? Could you think up something better?




More Information

Turing Interactives at the Science Museum London

Science Museum

Related Articles

Turing Exhibition and Facebook Timeline

Mathematical Art 2012

Bletchley Park awarded funds for historic restoration

What makes a programmer


To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.




or email your comment to:



SQLite 3.44 Extends Aggregate Functions

SQLite 3.44 has been released with new C-language APIs and extensions to aggregate functions.

Liberica Joins The Java CRaC Train

CRaC is a novel technique that makes the JVM faster to start.
Liberica's JDK build has just added support for it. Here are the details.

More News


Last Updated ( Saturday, 16 March 2013 )