Reference
The idea encyclopedia
Short, linkable definitions of the concepts that recur across programming and computing — from constructionism to late binding to homoiconicity.
A bicycle for the mind
Steve Jobs's metaphor for the computer as a tool that multiplies a basic human ability — here, thinking.
Augmenting human intellect
Douglas Engelbart's program for using computers to raise humanity's collective ability to solve hard problems.
Bootstrapping
Engelbart's strategy of using your tools to build better tools, in an accelerating loop of self-improvement.
Code as data
The Lisp insight that programs and the data they manipulate can be the very same kind of thing.
Constructionism
Seymour Papert's theory that we build knowledge most effectively while building things in the world.
Direct manipulation
Interfaces where you act on visible objects continuously and see the results instantly — drag, don't command.
End-user programming
Letting ordinary people, not just professional developers, instruct computers to do what they need.
Hard fun
Papert's observation that people love work that is hard — when the hardness is in service of something they care about.
Homoiconicity
When a language's code is written in its own primary data structure, so programs can manipulate programs.
Hypertext
Ted Nelson's name for non-linear, linked writing — text that branches and connects the way thought does.
Image-based development
Programming inside a persistent, live world of objects you sculpt rather than a pile of text files you compile.
Late binding
Deferring decisions — about types, meanings, even code — to the last possible moment, so systems stay malleable.
Live programming
Programming with an immediate, continuous connection between the code you write and the behaviour you see.
Logo & the turtle
The programming language and its on-screen (and on-floor) turtle that let children draw, build, and debug.
Man–computer symbiosis
J.C.R. Licklider's 1960 vision of humans and computers coupled so tightly they think together.
Message passing
Computation as independent objects sending messages to each other — the core of Alan Kay's idea of objects.
Metacircular evaluator
An interpreter for a language, written in that same language — the clearest mirror a language can hold up to itself.
Microworld
A small, self-consistent world where a powerful idea can be explored safely and exhaustively.
Notation as a tool of thought
Kenneth Iverson's thesis that good notation doesn't just record thought — it amplifies and directs it.
Object-oriented programming
A style of programming built from objects — but, in its original sense, really about messaging and late binding.
Objects to think with
Tangible or computational objects that carry a powerful idea and let you reason with it directly.
Powerful ideas
Concepts that, once grasped, change how you think about everything else — the real curriculum Papert cared about.
The Dynabook
Alan Kay's 1972 vision of a personal, dynamic computer-as-medium for children of all ages.
The medium is the message
Marshall McLuhan's claim that a medium reshapes thought independent of its content — a lens Kay applied to computing.
The Memex
Vannevar Bush's 1945 imagined desk that stores all your books and records and links them by 'associative trails.'
The REPL
Read–Eval–Print Loop: a live conversation with a running program, born with Lisp.
The universal machine
Turing's 1936 proof that a single machine, suitably programmed, can compute anything any machine can.
Worse is better
Richard Gabriel's uneasy thesis that simpler, uglier designs often beat better ones by spreading faster.