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.