Real-Time Programming and the Big Ideas of Computational Literacy

Christopher Hancock's dissertation, mentioned before but I think it deserves its own post somewhere, especially since it is very similar to Bret Victor's work (but is from 2003!).

Though notoriously difficult, real-time programming offers children a rich new set of applications, and the opportunity to engage bodily knowledge and experience more centrally in intellectual enterprises. Moreover, the seemingly specialized problems of real-time programming can be seen as keys to longstanding difficulties of programming in general.

I report on a critical design inquiry into the nature and potential of real-time programming by children. A cyclical process of design, prototyping and testing of computational environments has led to two design innovations:

  • a language in which declarative and procedural descriptions of computation are given equal status, and can subsume each other to arbitrary levels of nesting.
  • a "live text" environment, in which real-time display of, and intervention in, program execution are accomplished within the program text itself.

Based on children's use of these tools, as well as comparative evidence from other media and domains, I argue that the coordination of discrete and continuous process should be considered a central Big Idea in programming and beyond. In addition, I offer the theoretical notion of the "steady frame" as a way to clarify the user interface requirements of real-time programming, and also to understand the role of programming in learning to construct dynamic models, theories, and representations. Implications for the role of programming in education and for the future of computational literacy are discussed.