Block Based Languages

Block-based languages are a family of programming languages that are based on the idea of drag-and-drop instead of typing.

Talks from Tapestry Workshops

Speaker Tile Workshop Material
Charters, Cristy Visual Programming Languages Florida 2013 Slides (pdf)
Jurist, Mel Using Pico Boards with Scratch Delaware 2011 Slides (pptx)
Keller, Leslie Teaching with Mobile Devices North Carolina 2012 Slides (pptx) Slides (pdf)
Minich, Curt App Inventor Pennsylvania 2012 Google doc
Patel, Nilesh Mobile Applications Michigan 2012 Slides (pdf)

External Resources

  • Alice is focused on creating programmatic 3D animations and interactive games, and its descendent Looking Glass focussed on story telling. Has built-in tutorials. Alice and its descendants are known to occasionally crash (save often).
  • App Inventor is for making Android apps.
  • Google Blockly is a zero-install online tool, and can show the corresponding Python, Javascript, and Dart code.
  • Scratch and its descendant BYOB (which has now been merged with its web-based descendent Snap) are focused on creating 2D drawings. See also the Scratch educator's site and Colleen M. Lewis's example Scratch curriculum.

See also the Computational Thinking example curricula, many of which use block-based languages.


Anecdotally, students often learn the color of the blocks instead of their text.

Syntax Errors are basically impossible using block-based languages. Because of this, they typically cause fewer headaches and encourage more experimentation among early students than do text-based languages. On the other hand, this kind of development has not yet been used “in the wild” (i.e., by professionals) and many people find the interface a bit awkward.

Anecdotally, some people suggest that students who are good at block-based programming do not think of themselves as knowing how to program. So far this has, to my knowledge, neither been substantiated nor refuted experimentally.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License