MIT's Sussman Replaces Math Notation With Code to Fix Physics Flaws

Gerald Jay Sussman: The Role of Programming   (Dan Friedman's 60th Birthday) — William Byrd

William Byrd

Traditional mathematical notation obscures conceptual errors behind symbolic manipulation, making functional computer code the only rigorous medium for formulating and teaching scientific ideas.

AI-assisted summary of Gerald Jay Sussman: The Role of Programming (Dan Friedman's 60th Birthday) — original source. Check the original for full context.

Source published:

Key ideas

  • Gerald Jay Sussman argues that programming is fundamentally an intellectual tool for human-to-human communication and knowledge representation, rather than merely an instruction set for computers. (0:01)
  • Traditional mathematical notation fundamentally hinders student understanding by relying on impressionistic conventions, ambiguous partial derivatives, and flawed derivations that yield correct results through mathematically unsound steps. (4:54)
  • Reformulating classical mechanics into Scheme functional code eliminates symbolic sleight of hand by strictly separating coordinate evaluation from positional partial derivatives, turning physical laws into well-typed function compositions. (15:13)
  • Engineering intuition—such as the rapid local constraint propagation used to analyze transistor circuits—can be systematically captured, formalized, and taught as concise executable programs. (21:54)

Detailed notes

## Background This talk was published on YouTube by William Byrd on December 2, 2014. The video captures Gerald Jay Sussman delivering his presentation, "The Role of Programming in the Formulation of Ideas," recorded at Indiana University on December 4, 2004, in celebration of Dan Friedman's 60th birthday.

## TL;DR Gerald Jay Sussman argues that computer programming is primarily a medium for human communication and intellectual formulation rather than just machine instruction. Drawing on his work in celestial mechanics and his textbook Structure and Interpretation of Classical Mechanics, Sussman critiques standard mathematical notation for masking conceptual gaps with ambiguous symbol manipulation. He demonstrates how functional programming in Scheme provides absolute precision for physics derivations and how local constraint propagation can formalize intuitive circuit analysis. Ultimately, Sussman champions programming as an exploratory tool that forces conceptual clarity without getting bogged down in unnecessary mathematical rigor.

## Atmosphere & style The presentation carries an energetic, witty, and irreverent tone as Sussman playfully dismantles canonical mathematical conventions and academic textbooks. Transitioning seamlessly from blackboard derivations to retro 1970s circuit diagrams, he speaks with the unfiltered candor of an experienced mentor sharing insider epiphanies. The room feels intimate and intellectually vibrant, punctuated by knowing laughter from an audience of computer scientists enjoying his sharp critiques of traditional physics pedagogy.

## Bulletin - [00:01](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1s) Gerald Jay Sussman argues that programming is fundamentally an intellectual tool for human-to-human communication and knowledge representation, rather than merely an instruction set for computers. - [04:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=294s) Traditional mathematical notation fundamentally hinders student understanding by relying on impressionistic conventions, ambiguous partial derivatives, and flawed derivations that yield correct results through mathematically unsound steps. - [15:13](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=913s) Reformulating classical mechanics into Scheme functional code eliminates symbolic sleight of hand by strictly separating coordinate evaluation from positional partial derivatives, turning physical laws into well-typed function compositions. - [21:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1314s) Engineering intuition—such as the rapid local constraint propagation used to analyze transistor circuits—can be systematically captured, formalized, and taught as concise executable programs.

## Key takeaways - [00:01](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1s) Programming serves primarily from an AI perspective as a medium for representing and communicating procedural knowledge clearly between human beings. - [01:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=114s) Dedicated special-purpose simulation hardware built by Sussman and Caltech collaborators proved that the solar system's planetary orbits are chaotic, eventually earning a spot in the Smithsonian Institution. - [03:06](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=186s) Sussman and Jack Wisdom authored 'Structure and Interpretation of Classical Mechanics' (SICM) out of frustration with standard physics texts that dismiss student questions on foundational principles like least action. - [04:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=294s) Historical mathematical notation evolved like impressionistic natural language, leading to contradictory conventions such as confusing exponents with inverse functions. - [06:41](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=401s) Standard derivations of the Euler-Lagrange equations rely on an intellectual contradiction, treating position and velocity as independent variables during partial differentiation but causally related during time differentiation. - [10:22](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=622s) Conventional physics pedagogy trains students in empty symbolic manipulation, allowing them to earn top grades without conceptually understanding the underlying physical phenomena. - [12:25](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=745s) Lagrangian mechanics tests candidate paths against equations of motion, but traditional notation conceals the functional architecture and commits fundamental type errors. - [15:13](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=913s) Zero-based positional partial derivatives cleanly decouple functional differentiation from specific path coordinate evaluations, mapping classical mechanics directly into Scheme with structural fidelity. - [15:13](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=913s) Physicists' receptivity to computational mechanics is split by career stage: young researchers and retired seniors are enthusiastic, while mid-career researchers avoid it due to career pressures. - [20:07](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1207s) Experienced electrical engineers rapidly solve coupled nonlinear circuit equations by applying local constraint propagation across schematics rather than solving simultaneous differential equations. - [21:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1314s) The circuit diagram functions as an engineer's external memory, constraining annotations to a finite visual space and enabling modular reasoning. - [21:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1314s) Sussman and Richard Stallman captured tacit engineering intuition into a compact, five-page program implementing local deduction rules for circuit analysis. - [23:03](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1383s) Programming forces thought to be formal and precise without demanding full mathematical rigor, exposing hidden assumptions because computers refuse to evaluate ill-defined concepts. - [23:03](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1383s) Marvin Minsky and Seymour Papert pioneered the view that programming is an ideal constructive medium for exploring, debugging, and formulating poorly understood ideas.

## Detailed walkthrough ### [00:01](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1s) Programming as an Intellectual Tool for Knowledge Representation

Gerald Jay Sussman opens with an explicit clarification about his identity: he is not a computer language designer and has never intended to be one. While most speakers at the gathering focus on designing languages, Sussman identifies simply as a user. His primary concern stems from the artificial intelligence perspective: how to represent knowledge effectively so that ideas can be formulated, shared, and understood.

```mermaid flowchart LR accTitle: Knowledge Exchange Through Programs accDescr: Sussman's view of code as a human-to-human communication medium rather than just instructions for a machine. subgraph MindA["Author's Understanding"] A["Formulated Idea"] end subgraph Code["Executable Artifact"] B["Readable Program"] end subgraph MindB["Reader's Understanding"] C["Acquired Insight"] end A -->|"precisely expressed in"| B B -->|"studied and learned by"| C ```

For Sussman, programming is not just a way to instruct a machine, but a medium of human-to-human communication. As he explains: “It's important to me that I can give you a program to read and you can learn something from it that I've figured out and if you give me a program to read I can read it and I'll learn something from what you figured out.” This motivation led to *Structure and Interpretation of Computer Programs* (referred to by Sussman as “this weird book”), an effort to introduce these principles to MIT freshmen. While mathematical knowledge has long been formalized, procedural knowledge had historically lacked rigorous formal expression. Modern computer languages finally provide the precision required to state complex ideas that previously could not be expressed cleanly.

- Sussman emphasizes the AI perspective on knowledge representation: expressing what one knows with extreme precision. - Computer programs allow complex procedural ideas to be communicated without the ambiguity common in traditional formats.

[01:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=114s) Physics, Chaos, and the Smithsonian Machine

Sussman pivots to a passion many in the audience may not associate with him: physics, specifically celestial mechanics. In 1983, together with collaborators at Caltech, he built a special-purpose computer to perform high-speed orbital mechanics simulations. He displays a photograph of the machine sitting outside on the grass at Caltech.

This dedicated hardware produced groundbreaking results. It enabled Sussman and his collaborators to demonstrate that the solar system's planetary orbits are chaotic. The achievement was published in *Science* magazine, received editorial acclaim, and ultimately led to the physical hardware being retired into the permanent collection of the Smithsonian Institution in Washington, D.C. These accomplishments reinforced Sussman's drive to use computational models to teach and explain advanced physical principles.

[03:06](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=186s) The Motivations Behind SICM and Arnold's Footnote

Driven by a desire to communicate these insights, Sussman co-authored *Structure and Interpretation of Classical Mechanics* (SICM) with Jack Wisdom. He jokes that while he would have loved to have authored Isaac Newton's *Philosophiae Naturalis Principia Mathematica*, he cannot even read it because it is written in Latin. SICM provides a Scheme programmer's perspective on advanced mechanics, tracing a trajectory from Lagrange's equations through canonical perturbation theory.

The primary catalyst for the book was Sussman's undergraduate frustration with standard physics textbooks. He points out Vladimir Arnold's *Mathematical Methods of Classical Mechanics*, calling Arnold out directly for an unhelpful footnote on the principle of least action where the author essentially tells the reader he will not help them understand it. Sussman expresses his irritation: “So this gets me real mad because I really like students.” He contrasts Arnold's dismissive tone with Albert Einstein, who made deliberate efforts to write clearly and ensure readers understood his conceptual foundations.

[04:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=294s) Why Mathematical Notation Sucks

Sussman argues that the biggest barrier to learning physics is standard mathematical notation, stating bluntly: “Mathematic notation fundamentally sucks.” To illustrate how hostile and inconsistent it is to beginners, he writes out two familiar trigonometric expressions:

$$\cos^2 x = (\cos x) \cdot (\cos x)$$

$$\cos^{-1} x \neq \frac{1}{\cos x}$$

He points out how illogical this convention appears to a bright student: “Can you understand how horrible this is to a little kid in high school who's logical and smart?” Sussman explains that mathematicians are not foolish; rather, mathematical notation evolved historically as an impressionistic natural language. Natural language relies on a massive base of shared background knowledge between the speaker and the listener, requiring only small, impressionistic increments to convey a scene. Because traditional mathematical notation operates on this same principle, it is filled with ambiguities, enabling students and practitioners to obtain correct answers through technically invalid arguments.

[06:41](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=401s) The Euler-Lagrange Derivation Paradox

To demonstrate how standard notation encourages correct answers from unsound steps, Sussman walks through a textbook derivation of Newton's equations of motion from a Lagrangian on the blackboard. For a single point particle moving in a position-dependent potential field $V(x)$, the Lagrangian $L$ is written via Hamilton's principle as kinetic energy minus potential energy:

$$L(x, \dot{x}) = \frac{1}{2}m\dot{x}^2 - V(x)$$

Applying the Euler-Lagrange equation:

$$\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}}\right) - \frac{\partial L}{\partial q} = 0$$

Treating $x$ and $\dot{x}$ as independent coordinates $q$ and $\dot{q}$, the partial derivatives are evaluated:

$$\frac{\partial L}{\partial \dot{q}} = m\dot{x}$$

$$\frac{\partial L}{\partial q} = -\frac{dV}{dx}$$

Differentiating the momentum term with respect to time yields:

$$\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}}\right) = m\ddot{x}$$

Substituting these back into the Euler-Lagrange formula produces Newton's second law:

$$m\ddot{x} = -\frac{dV}{dx} = F$$

Sussman flags the underlying intellectual sleight of hand: during the partial differentiation steps, position $x$ and velocity $\dot{x}$ were treated as completely independent variables. Yet immediately afterward, time differentiation relies on the exact opposite relation—namely that $\frac{d}{dt}x = \dot{x}$. As Sussman summarizes the contradiction: “So the whole basis of the thing I just did which works to get the right answer every time is wrong.” He notes that as an undergraduate he could consistently produce the right answers on exams without having any genuine understanding of what was actually taking place.

[10:22](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=622s) Mathematical Notation and the Illusion of Understanding

Reflecting on his time as a student, Gerald Jay Sussman explains how it was entirely possible to get straight A's in advanced courses without having the slightest clue what was actually happening conceptually. He notes that this is a widespread phenomenon at institutions like MIT, where the root problem stems directly from flawed, ambiguous mathematical notation. In conventional pedagogy, students master the art of symbolic manipulation rather than conceptual comprehension. As Sussman highlights:

> “Using the traditional notation a student often learns to get the correct answer without understanding what's really happening at this stage the goal should be understanding ideas not manipulating symbols on a page okay and that's very very important and very sad and how do you do that well first of all you never can figure out anything that without programming that's true...”

Sussman calls out Vladimir Arnold's famous mechanics textbook, pointing out that even Arnold admits on the page that one must resort to awkward partial derivatives whose notation is fundamentally ambiguous. Sussman rails against classical formulations, complaining that students are still burdened with 300-year-old notation invented by Leibniz, or Newton’s equally flawed fluxion dot notation. He contrasts this with Michael Spivak’s classic text *Calculus on Manifolds*, which explicitly demonstrates why traditional notation fails. In Spivak's critique of the standard calculus chain rule, the symbol $f$ on one side of an equation represents an entirely different mathematical object than $f$ on the other side. Programmers, Sussman insists, think in terms of bound variables, free variables, and taking derivatives with respect to the index or argument position of a function, rather than confusing variable names with functional positions.

```mermaid flowchart TD accTitle: Notation vs Functional Precision accDescr: Contrasting traditional mathematical notation with functional programming principles.

subgraph Trad["Traditional Calculus Notation"] T1["300-Year-Old Notation (Leibniz / Newton)"] T2["Ambiguous Partial Derivatives"] T3["Symbol Manipulation Without Conceptual Understanding"] T1 --> T2 --> T3 end

subgraph Func["Functional Approach (Spivak / Sussman)"] F1["Zero-Based Argument Indexing (D_i)"] F2["Clear Scope: Bound & Free Variables"] F3["Functions as First-Class Values (Not Raw Expressions)"] F1 --> F2 --> F3 end

T3 -.->|"Replaced by Computation"| Func ```

---

[12:25](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=745s) Reconstructing the Lagrange Equations

Turning to physics, Sussman examines Lagrange’s equations of motion and apologizes jokingly to anyone in the audience who hates physics, adding that given the way physics is traditionally taught, “no doubt you should be hating it.” The core purpose of Lagrange's equations is to take a candidate path and test whether it is physically realizable—namely, whether it satisfies the equations of motion by minimizing the action. Yet, in traditional textbooks, the path itself never appears explicitly in the formula.

Instead, the traditional notation is merely an impressionistic shorthand that conceals the true functional architecture. A Lagrangian $L$ is a function of three arguments: time, position, and velocity. Taking the partial derivative with respect to velocity yields another function of three arguments. Only then are the path and its time derivative substituted in for the coordinates, collapsing the result into a function purely of time, which can finally be differentiated with respect to time. Comparing that quantity against the generalized forces yields zero. When an audience member asks whether the traditional form could be interpreted as a combinatoric formulation, Sussman rejects the premise outright, calling it a blatant type error:

> “No it's not right it's a type it's totally wrong yes okay and in fact there are much worse ones much more egregious ones I can't talk about here because I have to talk for an hour you know describe it to you people make horrible mistakes if you look in Goldstein's book on mechanics which is the one most people have learned from the derivations of canonical equations are just wrong however he understands that they're wrong and then he gets all in a lather about it and starts trying to explain to you why it's okay with lots of work...”

- In traditional texts, Herbert Goldstein's *Classical Mechanics* is cited as an example where canonical equation derivations break down due to careless notation, requiring convoluted prose apologetics to justify the results. - Sussman stresses that expressions are not functions: while $\frac{1}{\frac{1}{R_1} + \frac{1}{R_2}}$ and $\frac{R_1 R_2}{R_1 + R_2}$ are entirely different symbolic expressions, they define the exact same function.

---

[15:13](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=913s) Functional Mechanics and Translating into Scheme

To clean up the physics, Sussman adopts zero-based index partial derivatives—such as $\partial_1$ or $\partial_2$—which differentiate a function with respect to a positional parameter rather than an arbitrary coordinate name. This cleanly separates the act of differentiation from the act of evaluating the derivative along a specific state path. By explicitly representing the path $q$ and lifting it to a path in the system's state space, the Lagrange equations transform into a well-typed composition of functions where no type errors or ambiguities remain.

Sussman dismisses the idea that traditional dot notation can be repaired by some simple mechanical translator, noting that in standard texts one can find dozens of mutually incompatible uses of dot notations across successive chapters. Functional programming fixes this by enforcing absolute clarity. When mathematics is expressed as a functional program, it must be precise enough to be taught to a "dumb computer"—and once a computer can run it, a human being can finally understand it unambiguously. Sussman projects the Scheme code on screen, showing that the mathematical formulation maps one-to-one into Scheme expressions with complete structural fidelity.

When an audience member asks how professional physicists react to seeing classical mechanics written in Scheme, Sussman divides their responses strictly by career stage:

> “The young ones are very excited the very old ones are very excited and the ones around age 40 are not going to have anything to do with me at all and the reason is very simple the young ones are not yet committed to anything the old ones are no longer chasing after a Nobel Prize and the middle-aged ones are so busy working on with their nose to the grindstone on their next experiment or their next thing that they don't have time to think about something new and they're right for their careers it's the wrong thing to think about...”

---

[19:03](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1143s) Teaching Electrical Circuits and Engineering Intuition

Sussman traces the genesis of these ideas back to his experiences teaching electrical engineering students at MIT in 1974, before he met Guy Steele. While teaching introductory electrical circuits, he found himself struggling with how to communicate the tacit, intuitive thought processes of an experienced engineer. Standard circuit curricula relied on dense systems of equations that left students baffled and overwhelmed.

Displaying colorful old overhead transparencies made with 1974 Thermofax technology, Sussman notes that dropping a schematic of an active transistor amplifier in front of students routinely causes panic. A raw circuit diagram represents a coupled set of messy, nonlinear physical differential equations that are mathematically intractable to solve in closed form. Yet an experienced engineer can glance at the schematic of an amplifier and immediately understand how it functions by reasoning with operational abstractions, rather than getting buried under intractable systems of nonlinear equations.

[20:07](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1207s) Solving an Amplifier Circuit by Local Propagation

Gerald Jay Sussman invites the audience to watch how he analyzes an electrical circuit in real time, explaining that he frequently performs this demonstration and people are regularly astonished by how rapid and simple it is to follow. Addressing audience members without an electrical engineering background, he jokingly advises, "tough—watch what I do, not what I say." Examining an amplifier circuit under DC bias conditions, he begins by assuming the capacitors act as open circuits. Seeing a voltage divider, he determines the voltage at a specific node because the boundary voltages are already known. Since the base-to-emitter drop is roughly 0.6 volts, he deduces the adjacent node voltage is 0.6 volts below that, which immediately yields the current passing through the connected resistor. Under the assumption that negligible current enters the transistor base—acknowledging that “this could be wrong; it will be, in fact, slightly wrong”—he infers that the same current flows upward through the transistor and the next resistor.

```mermaid flowchart TD accTitle: Local Constraint Propagation in an Amplifier accDescr: Step-by-step local voltage and current deductions propagating across circuit components under DC bias conditions.

subgraph BiasStage["DC Bias Propagation"] A["Voltage Divider"] -->|"establishes"| B["Base Voltage"] B -->|"- 0.6 V drop"| C["Emitter Voltage"] C -->|"Ohm's Law"| D["Emitter Resistor Current"] D -->|"assumes base current ≈ 0"| E["Collector Resistor Current"] end

subgraph SmallSignalStage["Small-Signal AC Gain"] F["Input Wiggle ΔV_in"] -->|"propagates to stage 1"| G["Inverted Drop by R3 / R4"] G -->|"propagates to stage 2"| H["Amplified Rise by R5 / R6"] H -->|"total mid-band gain"| I["Gain = (R5 / R6) × (R3 / R4)"] end ```

Continuing the cascade of local deductions across series resistors, Sussman tracks voltages down by successive 0.6-volt steps and Ohm's law calculations until every node voltage and branch current is completely pinned down. He then shifts to dynamic behavior, showing how quickly the mid-band gain can be derived by small perturbations: “if I wiggle this a little bit, then I wiggle this by the same amount, which I wiggle that by the same amount, which means I wiggle this by that, which is the ratio of that resistor to this resistor, because the currents through these two resistors are the same.” Because the first stage inverts the signal by a factor of $R_3 / R_4$ and the second stage amplifies it by $R_5 / R_6$, the total mid-band gain falls out immediately as $(R_5 / R_6) \times (R_3 / R_4)$.

- Analysis assumes capacitors are open-circuited under DC bias conditions. - Base-to-emitter junctions introduce nominal 0.6 V potential drops. - Base current is approximated as zero, enabling direct series current propagation through the transistor. - Dynamic small-signal gain calculation depends strictly on resistance ratios across stages: mid-range gain equals $(R_5 / R_6) \times (R_3 / R_4)$.

[21:54](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1314s) Expressing Engineering Intuition as Code

Sussman reflects on the pedagogical gap between seasoned practitioners and beginners: every practicing engineer carries this propagation technique in their fingers, yet typical engineering freshmen have no idea how to do it. “The point is that that's something that every engineer knows how to do and no freshman knows how to do; how could I ever express it, and the only way I can think of expressing it is writing a program that does what I do.” Sussman explains that he and Richard Stallman spent considerable time studying this exact problem and wrote a program implementing the technique. He credits MIT professor Paul Penfield Jr. for teaching him the method by example, noting that although he had always been adept at electronics, Penfield’s approach revealed how remarkably simple the underlying logic was.

The entire procedure boils down to purely local deductions. Rather than maintaining complex global states or large algebraic systems, one applies local rules to observe neighboring components and writes annotations directly onto the circuit diagram. Sussman emphasizes that “the diagram is your memory,” meaning that because a schematic contains only a finite set of places to write annotations, you never waste effort or lose your place. In modern languages, the program implementing this propagation mechanism spans roughly five pages, compact enough for students to read, comprehend, and master.

[23:03](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1383s) Programming as a Medium for Thought and Education

Drawing broad philosophical conclusions from the circuit demonstration, Sussman argues that the central intellectual virtue of programming is how it demands clarity without getting bogged down in unnecessary mathematical formality. He draws a sharp boundary between being formal and being rigorous: “Programming forces one to be precise and formal without being rigorous. What I mean by rigorous and formal are quite different: formal means you know what that damn power series we're talking about; rigorous means you know it converges.” Because a computer flatly rejects vague or incomplete instructions, coding immediately surfaces one's hidden, unsupported assumptions.

He notes that this constructive discipline extends beyond the sciences and into art. Sussman cites Edgar Allan Poe's famous essay explaining the composition of *The Raven*, in which Poe laid out the deliberate, modular construction of the poem to systematically trigger specific emotional effects in the reader, debugging and smoothing out stanzas that did not work. Sussman then invokes what he considers the definitive statement on the subject, quoting the title of Marvin Minsky’s 1961 paper: “Why programming is a good medium for expressing poorly understood and sloppily formulated ideas.” Sussman dryly adds that this philosophy represents “exactly the opposite of people who want to play with type theory, for example.” Finally, he acknowledges Seymour Papert as the chief pioneer of using programming as an educational tool for constructing understanding, quipping that while Papert applied these ideas to young children, he himself applies them to students who are much older.

- Formalism demands knowing the precise entities under manipulation; mathematical rigor demands proving edge-case convergence. - Computers reveal unsupported reasoning by refusing to evaluate ill-defined steps. - Edgar Allan Poe treated poetic creation as an engineering endeavor in his analysis of *The Raven*. - Minsky's 1961 paper highlights programming as an exploratory medium rather than merely a verification harness.

[25:08](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1508s) Audience Discussion: Physics Formalisms, Mathematica, and Graph Rewriting

During the concluding question-and-answer period, an audience member shares an anecdote about double majoring in physics and computer science. While taking a mechanics class, the student asked a physics professor to explain what each intermediate algebraic step in an equation derivation physically represented in the real world. The professor replied that intermediate physical meaning was irrelevant because symbolic manipulation that yields the correct final result is all that counts. Disturbed by this answer, the student consulted their computer science advisor—who held a PhD in physics—only to hear, “yes, that's why I left physics and went to computer science.” Sussman nods along, remarking that former physicists in computer science often continue publishing physics research more successfully because they insist on operational clarity.

The conversation turns to commercial tools and alternative programming paradigms when an audience member asks about Wolfram Mathematica. Sussman dismisses the software bluntly: “Oh well, I don't know much about Mathematica since I've never used it; I write my own, but I don't much like Mr. Wolfram.” Another audience member follows up on the circuit diagrams, pointing out that Sussman's technique of pushing values across the diagram resembles term graph rewriting, and suggests that modern term-rewriting systems might condense the five-page program down to a single page. Sussman responds that circuit propagation is fundamentally non-linear rather than one-dimensional string manipulation, but agrees that more concise graph-rewriting frameworks could likely express it cleanly today, noting that the five-page program he and Stallman wrote dated back to around 1974. A final comment from the room recalls a math textbook remarking that Leibniz's notation allowed those who never understood calculus to teach it to those who never will, bringing the session to a close.

## Notable quotes > [23:03](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1383s) Programming forces one to be precise and formal without being rigorous. What I mean by rigorous and formal are quite different: formal means you know what that damn power series we're talking about; rigorous means you know it converges. — Gerald Jay Sussman

> [00:01](https://www.youtube.com/watch?v=arMH5GjBwUQ&t=1s) It's important to me that I can give you a program to read and you can learn something from it that I've figured out and if you give me a program to read I can read it and I'll learn something from what you figured out. — Gerald Jay Sussman

## Mentioned Gerald Jay Sussman, Dan Friedman, Structure and Interpretation of Computer Programs, Structure and Interpretation of Classical Mechanics, Jack Wisdom, Vladimir Arnold, Mathematical Methods of Classical Mechanics, Albert Einstein, Isaac Newton, Gottfried Wilhelm Leibniz, Michael Spivak, Calculus on Manifolds, Herbert Goldstein, Classical Mechanics, Scheme, Guy Steele, Richard Stallman, Paul Penfield Jr., Edgar Allan Poe, The Raven, Marvin Minsky, Seymour Papert, Stephen Wolfram, Mathematica, Smithsonian Institution, Science, Caltech, MIT

## Video description Gerald Jay Sussman: The Role of Programming in the Formulation of Ideas

http://www.cs.indiana.edu/dfried_celebration.html

Recorded 9:00 am, Saturday, December 4rd, 2004.

[Source](https://www.youtube.com/watch?v=arMH5GjBwUQ)

中文简报

麻省理工学院萨斯曼用代码替代数学符号以修正物理学缺陷 传统数学符号通过符号推演掩盖了概念性错误,使得函数式计算机代码成为表述和教授科学思想的唯一严谨媒介。 杰拉尔德·杰伊·萨斯曼认为,计算机编程主要是一种用于人际交流和智力构思的媒介,而不仅仅是机器指令。结合他在天体力学领域的成果及其教材《经典力学的结构与解释》,萨斯曼批评标准数学符号用模棱两可的符号推演掩盖了概念上的漏洞。他展示了 Scheme 中的函数式编程如何为物理推导提供绝对的精确性,以及局部约束传播如何使直觉性的电路分析形式化。萨斯曼最终倡导将编程作为一种探索性工具,在不陷入不必要的数学严苛性的同时,强制实现概念的清晰化。 杰拉尔德·杰伊·萨斯曼认为,编程从根本上说是一种用于人际沟通与知识表征的智力工具,而不仅仅是计算机的指令集。 (0:01) 传统数学符号依赖印象主义式的约定、模棱两可的偏导数以及通过数学上不严密的步骤得出正确结果的缺陷推导,从而从根本上阻碍了学生的理解。 (4:54) 将经典力学重新用 Scheme 函数式代码表述,通过严格区分坐标求值与位置偏导数,消除了符号上的花招,将物理定律转化为类型良好的函数复合。 (15:13) 工程直觉——例如用于分析晶体管电路的快速局部约束传播——可以被系统地捕捉、形式化,并作为简洁的可执行程序进行讲授。 (21:54)

Source quotes

[23:03] Gerald Jay Sussman: Programming forces one to be precise and formal without being rigorous. What I mean by rigorous and formal are quite different: formal means you know what that damn power series we're talking about; rigorous means you know it converges. [0:01] Gerald Jay Sussman: It's important to me that I can give you a program to read and you can learn something from it that I've figured out and if you give me a program to read I can read it and I'll learn something from what you figured out.

Original transcript

[0:01] so first of all I'm not a computer [0:03] language designer I want to make it very [0:05] clear that I've never had that intention [0:08] okay that's not what I'm mostly [0:09] interested is the use of languages I'm I [0:12] use them I'm a user that's quite [0:15] different from almost everybody who's [0:16] talked so far um and in particular I [0:20] have a very particular use which a guy [0:22] alluded to which is the rep [0:25] representation of knowledge it's from [0:27] the AI view of the world how is it that [0:30] can express the things I want to express [0:32] about the things that I know so not only [0:34] can a computer understand it but so can [0:36] you it's important to me that I can give [0:39] you a program to read and you can learn [0:41] something from it that I've that i' I've [0:43] figured out and if you give me a program [0:45] to read I can read it and I'll learn [0:47] something from what you figured out okay [0:49] so that's a a very important goal which [0:51] is rather probably different from most [0:53] of the computer language design in the [0:55] world and now in particular well we go [0:58] back you know I was we got to something [1:00] like this you all know about this this [1:02] weird book okay uh this weird book was a [1:05] attempt to tell this to freshman and it [1:07] worked pretty well okay and of course [1:09] just saying it for the first for the [1:11] first 10 seconds uh you know that there [1:13] is a particular kind of knowledge that [1:14] we all uh deal with which is the the uh [1:17] mathematical knowledge that's pretty [1:19] standard and uh there is also another [1:21] kind of knowledge which until recently [1:23] has not been effectively form formalized [1:25] which is this kind of knowledge and many [1:28] of you have seen this kind of of slide [1:29] that I put up all the time this is you [1:32] you so this is not something new or [1:34] different uh the of course the one thing [1:37] that has Chang is we now have computer [1:39] languages whereby we can be very precise [1:41] about the things that we say so that in [1:44] fact for complicated problems not simple [1:46] ones like this I can tell you something [1:48] that could not have been said before in [1:49] any reasonable precise way okay so [1:54] however something you probably most of [1:55] you probably don't know is I'm very [1:57] interested in in physics okay and so [2:00] you're going to see some Physics today [2:03] okay okay now [2:05] the in particular I started out a few [2:09] years ago being interested in Celestial [2:11] mechanics and uh with my friend my [2:13] friends at Caltech I built a special [2:15] purpose machine for doing orbital [2:16] mechanics calculations this is sitting [2:18] on the grass of Caltech uh in 1983 uh [2:22] this particular machine did some useful [2:24] things among other things it [2:26] demonstrated that the solar system was [2:27] chaotic this is a a little uh little uh [2:31] article by the the editor of science uh [2:34] we got we we got some uh we got some [2:37] pretty good pretty good stuff going [2:38] there okay this seems to be a very [2:40] important paper that that made that [2:42] machine end up in the Smithsonian in [2:44] Washington not that I want to tell you [2:45] about that either and there's another [2:47] one also in Science magazine of that [2:49] sort end of story okay end of story okay [2:54] but just to give you the feeling what [2:55] I'm interested in I'm interested in use [2:57] of see I learned a lot okay I want to be [3:00] able to tell you the things I've learned [3:02] and that's what and that's the the sort [3:05] of idea that I want to get into now of [3:06] course I would have liked to have [3:07] written this [3:12] book this is a this is of course one of [3:14] my great Heroes uh unfortunately it's [3:17] it's written in Latin and I can't even [3:18] read it it's very sad mathematical [3:21] principles and natural philosophy so [3:23] with a friend of mine we wrote a book [3:25] called structure interpretation of [3:27] classical mechanics which many of you [3:28] may have seen uh for those of you who [3:30] don't know what it is it's a a scheme [3:32] programmer's uh view of the of of [3:34] physics at the sort of advanced level [3:36] starting with LeBron's equations are [3:39] going through canonical peration Theory [3:41] okay and I will I will tell you a bit [3:43] about this uh what I'll tell you about [3:45] is not this book and prec precisely put [3:47] the motivations for it and some examples [3:50] that illustrate why programming is an [3:52] essential idea okay that's the thing I [3:54] wish to show you today okay well the [3:57] motivation for writing this book was a [4:00] thing I I when try to learn all this [4:01] stuff way back when I was an [4:03] undergraduate uh you used to read things [4:05] like Arnold's mathematical methods of [4:07] classical mechanics you know you've seen [4:09] that book and he he's a son of a [4:11] okay he's written things like this and [4:13] this is in a footnote okay in his book [4:16] okay [4:20] there's he's talking [4:22] about he's talking about the principle [4:24] of least action and he says I'm not [4:26] going to help you understand it it's [4:30] so this gets me real mad okay because I [4:33] really like students by by contrast my [4:36] one of my other Heroes Mr Einstein uh [4:39] tries very hard to be very clear okay [4:41] and of course he wrote a a nice thing on [4:44] introduction to a book that was [4:45] published after he was dead uh which [4:47] explains that he was actually interested [4:49] in you reading and understanding what he [4:50] was writing about very a very different [4:52] approach and I'm interested in that [4:54] too so what are the impediments to [4:57] learning about physics well let's just [4:59] start with mathematical notation [5:00] mathematic notation fundamentally sucks [5:03] okay and I'll I'll I'll I'll I'll show [5:04] that to you in an instant [5:07] okay so a few things to say first of all [5:12] uh you know what this is right cosine [5:15] Square X right everybody knows this is [5:18] cosine x * cosine X [5:21] right okay very sensible okay however [5:26] cosine Min - one of [5:28] X okay this is not one over cosine [5:32] X can you understand how horrible this [5:35] is to a little kid in high school who's [5:39] logical and smart the dumb ones will [5:41] understand this [5:43] smart [5:45] Okay so that this is only a microscopic [5:48] example but I just want to make it very [5:49] clear that mathematicians have not been [5:51] very careful about notation and there's [5:54] a reason for that it's not like they're [5:56] dumb the reason is that it's natural [5:59] language now English is not a consistent [6:02] language either and the way you deal [6:04] with when I'm telling you something if [6:06] something that is a a new thing that you [6:08] might want to know about well we assume [6:10] that there's a humongous amount of of [6:13] commonality between what I already know [6:15] and what you already know such that only [6:17] a little increment I have to paint a [6:18] picture in your mind of what's in my [6:19] mind and it can be impressionistic and [6:22] so mathematical notation is in fact an [6:24] impressionistic natural language which [6:26] thereby is no good for teaching [6:28] Elementary stuff okay so in fact I'm [6:31] going to show you some great ways to get [6:33] the right answer by wrong arguments and [6:36] that doesn't go if you're really want to [6:38] understand what's going [6:39] on so I'm going to start with something [6:41] that [6:42] unfortunately I'll leave it up here uh [6:45] but I'm this [6:46] is maybe I'll write it on the Blackboard [6:48] also so slowly to make it slowly enough [6:50] so that we understand it okay the laws [6:52] of nature are often represented in terms [6:55] of something called lran a lran is a des [6:59] a scalar description of the uh of the [7:02] ways particles move and in particular [7:05] what it is is it's in the case of of [7:08] Point particles that are involved only [7:10] in in uh uh in fields that are based on [7:14] position as in for example the motion of [7:16] the planets or the Motions of of other [7:18] things uh the uh they're written down as [7:22] the difference of a kinetic energy and [7:23] potential energy that's called [7:24] Hamilton's principle Hamilton was the [7:26] guy when had cians and a lot of other [7:27] smart things okay and so what there is [7:30] here is a is a thing which is the [7:32] difference between the kinetic energy 12 [7:36] m x do s where X do is the velocity okay [7:40] minus a potential energy V of X this is [7:43] a hamiltonian for a single particle in a [7:45] in a in a field which is defined in [7:48] terms of a potential energy of called V [7:51] okay which depends only on position and [7:52] of course this could be many dimensions [7:54] and I'm not going to worry about that [7:55] now it turns out once you've done this [7:57] you can immediately get Newton's [7:58] equations in a in a coordinate [8:00] independent way and that's why people do [8:02] it and this is the process by which you [8:04] do it there is a particular derivation [8:07] was invented by Oiler and I'm not going [8:08] to give the derivation which is D DT DL [8:12] by DQ do minus DL by DQ equal Z this is [8:18] called the LeBron equations which will I [8:20] will now demonstrate will get us [8:21] Newton's equations by the method you see [8:23] up here okay so there's a couple of [8:26] things you do you say okay I'm going to [8:28] take a I'm going to take a partial [8:29] derivative uh what's DL by DQ dot well Q [8:33] what's the Q Q is x dot here x and q [8:35] with G I'm just an alpha renaming but [8:37] we'll worry about that later uh this is [8:40] uh so this is uh what is it m x dot and [8:45] I also want to take a derivative with [8:46] respect to the the position and that [8:48] only appears in this term in this case [8:50] although it's possible in a real system [8:52] that the mass might depend upon time [8:54] okay it might depend upon position and [8:56] in fact it does if you have something [8:57] like a double pendulum the mass term dep [8:59] my position but I'm not going to worry [9:01] about that right now uh DL by DQ is what [9:06] is it minus uh [9:08] D minus what is it oh yeah DV by [9:13] DX it's hard to do algebra on the [9:15] Blackboard so this is the gr minus the [9:17] gradient of the potential energy at the [9:19] force okay now this is the momentum and [9:22] I want to take the derivative of the [9:24] momentum so of course I do a DOT [9:27] manipulation hold on a second about to [9:29] do something very weird DDT DL by DQ dot [9:34] is going to be uh MX double dot which is [9:38] the mass times the acceleration oh boy [9:41] that that's the right answer the mass [9:42] time acceleration is minus is the force [9:45] which is minus the radi of the potential [9:46] energy but I've done something really [9:48] weird in writing these down I've assumed [9:50] that I could vary independently the [9:52] position and the [9:54] velocity okay but over here I I know [9:57] that what I'm really decided is [10:00] DT of x dot sorry xal x dot whoops so [10:05] they're not [10:06] independent so the whole basis of the [10:09] thing I just did which works to get the [10:10] right answer every time is wrong that's [10:14] not what's going on okay so of course [10:17] this is the kind of thing it's really [10:18] difficult to learn you know I figured [10:20] out that when I was an undergraduate I [10:21] got all the answers right but I had no [10:22] idea what was happening okay and it was [10:24] very interesting I get A's in all these [10:26] classes and it made no sense at all okay [10:28] so this is of course that's a very [10:30] common thing that students discover in [10:32] uh in places like MIT [10:36] uh and using the problem here is a [10:38] notational one and I'll be very careful [10:40] about this uh using the traditional [10:42] notation a student often learns to get [10:44] the correct answer without understanding [10:45] what's really happening at this stage [10:47] the goal should be understanding ideas [10:49] not manipulating symbols on a page okay [10:51] and that's very very important and very [10:53] sad and how do you do that well first of [10:55] all you never can figure out anything [10:56] that without programming that's true but [11:00] here's another piece of Arnold stuff [11:02] Arnold such a son of a okay he's [11:05] he says it is necessary to use the aquar [11:08] partial derivatives in which even the [11:09] notation is ambiguous so he admits it [11:12] and then he gives an example of what's [11:13] ambiguous about [11:16] it so what the hell is he using this [11:18] crappy notation the notation was [11:20] invented 300 years ago and it was by by [11:22] liit Newton had this other bad one with [11:25] dots neither one's any good there was a [11:27] guy who didn't understand this idea felt [11:29] the spivac wrote a great book called [11:32] calculus on manifolds we get rid of [11:34] these Blackboard for the [11:36] moment [11:38] whmo okay where he explains actually [11:41] what's wrong with the notation in a [11:42] serious way and if anybody wants I don't [11:44] want to go through this right now but F [11:46] on this side and F on this side the [11:47] chain rule are two different things the [11:49] symbols are not even sensible so we [11:52] invent a notation uh I suppose this one [11:57] okay for a partial derivative or capital [11:59] for total derivative which in fact is [12:01] talking about the way we do it as [12:02] computer programmers we're talking about [12:04] bound variables free variables [12:06] everything makes sense okay we're [12:08] talking about der with respect to a [12:10] position in a function call not a not a [12:13] uh not a [12:15] name and so in fact uh I'm going to use [12:19] a a a notation based on Mr spivac so [12:23] let's figure out what this actual lrange [12:25] equations me okay you see the lrange [12:28] equations here and here's a here what is [12:30] it going on what's going on is [12:34] this I apologize for those of you who [12:36] hate physics but I'm not surprised see [12:39] the way we teach it is such that no [12:41] doubt you should be haing it um look at [12:45] this okay so what's really going on what [12:48] gr equation trying to do it's trying to [12:50] test a path to determine whether or not [12:53] that path is is a realizable path [12:56] considering the physical situation is it [12:59] in fact a uh a solution of the equations [13:02] or to be really really careful is it a [13:04] thing which minimizes the action which [13:06] is the the way this is being formulated [13:09] okay so but the path never appears in [13:11] Lous equations written this traditional [13:13] way so that's already wrong it's missing [13:15] the the the thing we're interested in [13:18] what's really going on is that this is [13:20] some impressionistic version of this of [13:22] what you see right here okay what we're [13:25] saying is there's a path W happens to [13:27] we're going to give names to we're we're [13:29] going to take variable we have a [13:30] function L which has three basic kinds [13:33] of arguments a time a position and a [13:35] velocity okay we're taking partial [13:38] derivatives of L which produces by way a [13:41] function of three of three arguments [13:43] three result three three formal [13:45] parameters okay still a position a a [13:48] time and a velocity okay and however [13:51] we're going to we're going to substitute [13:52] in for the position after we've taken [13:54] this partti derivative we substitute in [13:56] the position the path and the derivative [13:58] of the path that's a Time derivative for [14:00] Q and Q dot producing a function only of [14:02] time which then is perfectly possible to [14:04] take a Time derivative of okay and we're [14:07] comparing that with the forces at that [14:10] at that [14:11] moment and that that should be zero [14:14] that's actually what's not said and I I [14:16] dare you to find a book that does it [14:18] that shows you this because it's ugly [14:20] you see it's very [14:23] ugly it's not very nice for computers [14:25] yes [14:26] sir yes sir is it possible that what you [14:31] see the top is a not just [14:33] impressionistic but more specifically a [14:35] combinatoric version no it's not right [14:38] it's a type it's totally wrong yes okay [14:41] and in fact there are much worse ones [14:42] much more egregious ones I can't talk [14:43] about here because I have to talk for an [14:45] hour you know Des describe it to you [14:47] people make horrible mistakes if you [14:49] look in Golden's book on on mechanics [14:51] which is the one most people have [14:52] learned from the derivations of capital [14:54] equations are just wrong however he are [14:57] he understands that they're wrong and [14:59] then he makes it gets all a lather about [15:01] it and starts trying to explain to you [15:03] why it's [15:05] okay with lots of work yeah okay it's [15:08] pretty [15:09] interesting okay anyway uh here's what's [15:13] going let's let's make this simpler [15:14] first of all we're going to make this [15:16] into a functional language okay so the [15:18] first thing I'm going to do is I'm going [15:19] to tell you that I really want partial [15:20] derivatives okay and part this is the [15:22] partial derivative with count I'm a [15:24] zerob based indexing man 012 this is the [15:27] partial der with respect to the second [15:28] position of this function gives me a new [15:30] function which is then applied to these [15:33] things okay so this is this is already [15:35] one thing that's done now instead let's [15:37] take this this object this object is a [15:39] function of a path which produces a [15:41] function of time writing this still down [15:43] it's some ordinary notation of a [15:45] mathematical kind that's what that's [15:46] what what it looks like okay well [15:49] however that means that I can I can re [15:51] Nar write this thing this way okay now [15:54] of course if I also realize that I just [15:56] want to write that the derivative of a [15:58] function is a new function F and I'm not [16:00] dealing with Expressions because [16:01] expressions are no good anyway 1 one one [16:05] 1 1 R1 plus 1 R2 equals R1 R2 over R1 [16:09] plus R2 they have the same function but [16:12] they're different Expressions the [16:13] function is what [16:15] matters okay and so what here's what [16:17] we've got der this is a nice [16:20] representation and it makes sense it's [16:22] got an explicit place to put a path it's [16:25] got a thing that extends that path to [16:26] the state to path in the state space and [16:29] I can take derivatives of it this is a [16:31] derivative of function of one argument [16:33] this is a partial derivative function of [16:34] three arguments which produces of three [16:35] arguments function of three arguments [16:37] which is composed with something that [16:39] prod out puts out three values okay so [16:42] there's no type error anymore that's the [16:45] commsion no but I'm saying that the [16:47] original thing is is is not translatable [16:50] in nice way there's no the bottom line [16:52] is Oh yes I see what you said I'm sorry [16:54] I thought he was asking whether or not [16:56] one could interpret what these people [16:57] are doing as some which by a mechanical [17:00] process produ it I no that's not true [17:03] because all the do manipulation in the [17:04] world is there's about 42 ways of I can [17:07] show you completely inconsistent dot [17:08] notation that happens in the next [17:10] chapter of something okay okay and so [17:14] the crucial thing here is functional [17:16] programming allows us to to be precise [17:21] okay that we it can be precise stuff [17:23] that we can teach to a dumb computer if [17:25] we can teach to a dumb computer and I [17:26] give you the computer program then you [17:28] can understand what's going [17:29] on that's very important the other the [17:32] other way to say it is that is that [17:35] computer is not going to let you become [17:37] imprecise because just going work you [17:40] want things to work and then so you got [17:41] a a way to think about that [17:44] way and so the schif of this is Trivial [17:48] okay now we've got a language that's one [17:49] to one correspondence with scheme okay [17:52] and there it is okay for those of you [17:54] who like this sort of thing this is the [17:56] sort of thing you like everybody in this [17:57] audience understands this if I I go to a [17:59] physics department they're going to [18:00] freak out at this point they see a lot [18:01] of parentheses wait Jerry how do [18:03] physicists react to this the right way [18:06] the the young ones are very excited the [18:09] very old ones are very excited and the [18:10] ones around age 40 are not going to have [18:13] anything to do with me at all and the [18:15] reason is very simple the young ones are [18:17] not yet committed to anything the old [18:19] ones are no longer chasing after after a [18:22] Nobel Prize and the and the middle-aged [18:24] ones are so busy working on with they [18:26] noce the grindstone on their next [18:27] experiment or their next their next [18:29] thing that they don't have time to think [18:31] about something new and they're right [18:33] for their careers it's the wrong thing [18:35] to think about okay but anyway this is [18:39] this is what happens here of course you [18:40] write programs like that and of course [18:42] such a program is useful independent of [18:44] anything else how much time do I have by [18:45] the way almost five minutes good okay [18:47] I'll I'll go very fast boom I can [18:50] compute lonians and things okay you know [18:54] get [18:56] answers you know F I'm not in this stuff [18:59] to show you right now but I'm going to [19:00] show you something else that's more fun [19:03] okay boom ah so much for that see the [19:07] problem is I can talk about there's a [19:08] lot of stuff to talk about here where's [19:10] this idea come from that's very [19:11] important how's it how did I get myself [19:14] into this this came from the fact that I [19:15] was teaching electrical engineering [19:16] students in the in the 70s okay before a [19:19] I met guy steel amazingly enough okay [19:22] and so I was 1974 I was teaching [19:24] introductory electrical circuits and I'm [19:26] going to show you something just for fun [19:28] okay cuz it's a the idea was how do I [19:30] get it across to them how I behave as a [19:34] as as a professional engineer see [19:36] electrical circuits are an abstraction [19:37] of the physical world okay and we [19:40] normally teach electrical circuit stuff [19:41] oh by the way this is thermofax from [19:44] 1974 look at the colors okay remember [19:47] that stuff okay anyway so we teach [19:49] things with equations and so on nobody [19:51] can understand it right standard stuff [19:53] that's the standard bug now however when [19:55] you walk into a classroom and a give a [19:57] student something like that they freak [19:58] out out okay for the first time and for [20:00] good reason it's very complicated it's [20:03] got a bunch of nonlinear equations [20:04] there's no way to solve this okay but [20:06] this is an amplifier and I can tell you [20:07] how it works so you going to watch me [20:09] what I do okay because I'm going to [20:10] solve this I do this all the time for [20:12] people and they're always freak see they [20:14] amazed how quickly and easy to [20:15] understand this for those of you who [20:16] don't know anything about electrical [20:17] circuits [20:19] tough watch what I do not what I say [20:22] okay so this is a this is this is a uh [20:26] an amplifier what I have here is a [20:28] voltage Dev div I'm going to look at [20:29] this in the DC bias conditions that [20:31] means I'm I'm assuming my capacitors are [20:33] open circuited and so I've got a voltage [20:35] divider here that means I know the [20:37] voltage here because I know the voltage [20:38] here and I know the voltage here since I [20:39] know the voltage here this voltage is6 [20:40] volts below it this voltage 6 volts [20:42] below that therefore I know the current [20:43] through this resistor so I know the [20:45] current that must be coming up through [20:47] through this transistor through that [20:48] resistor because I'm assuming that [20:49] there's no no current going to the base [20:51] of a transistor okay that's an [20:53] assumption this could be wrong it will [20:55] be in fact slightly wrong now that means [20:57] I know the current are going through [20:58] here but since I know the voltage over [20:59] here I know the voltage over here [21:00] therefore I know the voltage over here [21:01] therefore I know the voltage here is6 [21:02] volts below that this is a set resistors [21:05] in series therefore I know the current [21:06] through those resistors because I know [21:07] the voltage here and the voltage here [21:09] therefore I know the current through [21:10] here therefore I know the voltage over [21:11] there and therefore I know the the [21:13] current at this therefore I know the [21:14] voltage at this point therefore I know [21:16] the voltage here and therefore I know [21:17] the current through this and I know all [21:19] the DC bias conditions and I can figure [21:20] out the gain for you in no time going [21:21] also it turns out a very simple argument [21:24] if I wiggle this a little bit then I [21:26] wiggle this by the same amount which I [21:27] Wiggle That by the same amount which [21:28] means I wiggle this by that which is the [21:30] ratio of that resistor to this resistor [21:32] because the currents through these two [21:33] resistors are the same which means so [21:35] that's that's this goes down when this [21:37] goes up by R3 over R4 and by a similar [21:39] argument this one goes up when this one [21:41] goes down by R5 over R six so therefore [21:44] the the gain of this amplifier in the [21:46] mid-range is R5 over R6 time R3 over [21:49] R4 okay now the point is the point is [21:54] that that's something that every [21:55] engineer knows how to do and no freshman [21:58] knows how to do do it how could I ever [22:00] express it and the only way I can think [22:03] of expressing it is writing a program [22:05] that does what I [22:06] do okay now stolman and I worked on this [22:09] for some time and we wrote a program [22:11] that does what I do okay I learned this [22:14] trick by watching another great engineer [22:17] by name of Paul Penfield okay that's how [22:20] I learned how to do this alth I've been [22:23] good at things I never was very good at [22:24] that that good at and it turned out it [22:26] was very simple okay it turned out was [22:28] very simple it was little local things [22:31] you you have little little rules that [22:34] allow you to see only locally what [22:35] happens and make anotations to the [22:37] diagram and the diagram is your [22:41] memory okay there only a PL a number of [22:43] places to put things on the diagram so [22:44] you don't get wa you don't waste your [22:45] time okay and that program turns out to [22:48] be very simple I'm not going to show it [22:49] to you today don't have the time but a [22:51] program to do this is five pages of [22:53] modern [22:54] language which means if I give it to a [22:56] student that can understand they already [22:57] Noto [23:00] and so that's pretty much what I want to [23:01] show you about so here's the here's the [23:03] conclusions I've got a few conclusions [23:06] programming forces one to be precise and [23:08] formal without being rigorous what I [23:10] mean by rigorous and formal are quite [23:11] different formal means you know what [23:13] that damn power series we're talking [23:15] about rigorous means you know [23:17] converges okay the computer does not [23:20] tolerate vague or in descriptions or [23:22] incomplete instructions therefore one [23:24] becomes aware of one's unsupported [23:26] conclusions that's one thing [23:29] by the way just to point out this is [23:30] relevant to everything even even poets [23:34] understand that that that engineering is [23:37] used in making a good [23:39] poem this is a very important paper [23:42] which I think everybody should look up [23:44] by Edgar Allen Poe where he explains how [23:47] he made the Raven so as to produce the [23:50] appropriate effect in the reader by [23:52] putting together pieces that have the [23:54] appropriate effects in the right way he [23:57] and he debugged it he had to smooth out [23:59] places which didn't work he had to [24:01] understand the consequences of his be of [24:03] his actions every poet know does this [24:05] most of them don't know it they do it [24:07] okay or probably the most important [24:09] quote of all here is from the only part [24:13] of this that matters is the title to [24:15] this paper that mitsky wrote in 61 I [24:18] think which is why programming is good [24:20] medium for expressing poorly understood [24:22] and sloppily formulated ideas exactly [24:26] the opposite of people who want to play [24:28] with typ [24:34] theory for example okay and the the the [24:38] person who's probably most responsible [24:40] for realizing this is a very important [24:42] idea in education is see more P so I'm [24:46] he's interested in Little Children I'm [24:48] interested in the ones that are much [24:49] older than me okay so much for [24:53] that that's it for it [25:08] you said I was double major in physics [25:10] computer science and had exactly the [25:12] same experience one day when I sat in [25:14] class my professors went through a [25:15] deration one step at a time and it was [25:18] it was mechanic stuff and I said okay [25:19] well tell me what each step in that [25:21] means in the universe what if you did [25:23] this arrangement in your equation what [25:24] is the correspondence of thatal world he [25:26] said it doesn't matter it's just simple [25:27] manipulation you get the right answer at [25:28] the B that's all that matters yeah I [25:30] know terribly frustrated by this I went [25:32] to talk to my other adviser computer [25:33] science who was also a PhD theis and [25:36] asked him about it and he said yes [25:37] that's why I left physics in went of [25:38] computer [25:39] science ironically the computer [25:42] scientist former physicist was [25:43] continuing to publishing physics more [25:46] successfully it's a well-known feature [25:49] okay because you know getting the result [25:51] is all that [25:52] matters [25:55] Yesa oh well I don't know much about [25:57] mathem since I've never used it uh I [26:00] write my own uh but I don't much like Mr [26:10] wolfer any other questions yeah Jerry [26:13] what I think what an was really getting [26:14] up was you said the last three pictures [26:17] that you had on the board moving the red [26:20] through the green diagram four diagrams [26:22] what he was really getting at was you [26:24] said you can write this in five pages of [26:26] a mod programing language there are even [26:28] more mod program don't [26:31] recognize re system where this actually [26:34] fits on the same page well the [26:35] difficulty is it's not one it's not a [26:37] one diens string manipulation it is [26:41] right that's that's and I don't know [26:42] about those particularly but there [26:44] there's it should beable it should be [26:46] doable I believe that it's just the five [26:48] pages ones I wrote 74 or something inst [26:59] well I remember reading one of my math [27:00] textbooks that the lead its notation let [27:02] those who never understood calculus to [27:04] teach it to those who never will [27:30] is the projector's on right