Rethinking Programming Education: Towards Visual and Understandable Programming

2025-08-04

This essay critiques the shortcomings of current "live coding" environments, exemplified by JavaScript and Processing, in programming education. It argues that these environments fail to effectively support powerful ways of thinking and don't allow programmers to see and understand program execution. The author proposes that understanding program flow and data state is key to learning programming, advocating for visualization techniques like timelines and data visualization to make the process more transparent and understandable. The importance of programming language design is also stressed, promoting metaphors closer to human thought processes and more easily understandable syntax. The essay emphasizes decomposition and recomposition methods to encourage creative learning.

Read more
Development program understanding

Information Software Design: The Triumph of Graphics, the Failure of Interaction?

2025-06-03

Bret Victor's paper challenges conventional software design, arguing that most software (information software) centers on information presentation, not interaction. He advocates for information software design grounded in graphic design, reducing user interaction through clever visualizations and context awareness. The paper uses examples like train schedules, online bookstores, and movie listings to contrast traditional interactive designs with graphic design-led approaches. It proposes context inference methods leveraging environmental sensing and historical data. Victor calls for the software design industry to prioritize visual communication, revolutionizing information software design for more intuitive and efficient user experiences.

Read more
Development Graphic Design

Alligator Eggs: A Game That Teaches Lambda Calculus

2025-01-20

In 2007, Bret Victor created "Alligator Eggs," a puzzle game that ingeniously translates the abstract concepts of lambda calculus into a playful game mechanic. Hungry alligators represent lambda abstractions, old alligators represent parentheses, and eggs represent variables. The process of alligators eating other alligator families corresponds to beta-reduction, the color rule corresponds to alpha-conversion, and the old alligator death rule corresponds to parenthesis elimination. Players solve a series of puzzles to gradually understand the core concepts of lambda calculus, such as beta-reduction and alpha-conversion. The game not only provides a fun way for children to learn lambda calculus but also offers an intuitive tool for understanding and calculating lambda calculus.

Read more