ezyang’s blog

the arc of software bends towards understanding


Thoughts on gamifying textbooks

Earlier this year, Woodie Flowers wrote this criticism of MITx: We seem to have decided to offer “courses” rather than participate in the exciting new process of replacing textbooks with more effective training tools. Logitext, true to its name, was intended to explore what a chapter from a next-generation textbook on formal logic might look […]

  • May 24, 2012

An Interactive Tutorial of the Sequent Calculus

You can view it here: An Interactive Tutorial of the Sequent Calculus. This is the "system in three languages" that I was referring to in this blog post. You can also use the system in a more open ended fashion from this page. Here's the blurb: This interactive tutorial will teach you how to use […]

  • May 22, 2012

Is it better to teach formalism or intuition?

Note: this is not a discussion of Hilbert's formalism versus Brouwer's intuitionism; I'm using formalism and intuition in a more loose sense, where formalism represents symbols and formal systems which we use to rigorously define arguments (though not logic: a sliding scale of rigor is allowed here), while intuition represents a hand-wavy argument, the mental […]

  • March 18, 2012

Anatomy of “You could have invented…”

The You could have invented... article follows a particular scheme: Introduce an easy to understand problem, Attempt to solve the problem, but get stuck doing it the "obvious" way, Introduce an easy to understand insight, Methodically work out the rest of the details, arriving at the final result. Why does framing the problem this way […]

  • February 23, 2012

Evolution of a Shared Web Host

Edward continues his spree of systems posts. Must be something in the Boston air. Yesterday, I gave a SIPB cluedump on the use and implementation of scripts.mit.edu, the shared host service that SIPB provides to the MIT community. I derive essentially all of my sysadmin experience points from helping maintain this service. Scripts is SIPB’s […]

  • September 15, 2010

The secret to successful autogenerated docs

I've had a rather successful tenure with autogenerated documentation, both as a writer and a reader. So when Jacob Kaplan Moss's articles on writing “great documentation” resurfaced on Reddit and had some harsh words about auto-generated documentation, I sat back a moment and thought about why autogenerated documentation leave developers with a bad taste in […]

  • June 21, 2010

AP Physics: Stuck in the concrete

Attention conservation notice. The author reminisces about learning physics in high school, and claims that all too often, teaching was focused too much on concrete formulas, and not the unifying theory around them. In elementary school, you may have learned D=RT (pronounced "dirt"), that is, distance is rate multiplied with time. This was mostly lies, […]

  • June 7, 2010

Class Reflections

Last February, I posted about classes that I was going to be taking. Here are some reflections, now that final projects and examinations are over. 6.005: Software Construction. Teaching students how to engineer large software projects is one of the oddest paradoxes that you might encounter in academic life. The institute is certainly capable of […]

  • May 19, 2010

I Hate Patches:
Confessions of an Open-Source Developer

It is a truth universally acknowledged that if you really want a change put into an open source project, you submit a patch along with the bug report. Sure, you might complain that the average user doesn't have any programming experience and that it's unreasonable to expect them to learn some complex system and then […]

  • May 17, 2010

Being an expert considered harmful

It's a sunny day in your advanced symbolic programming class. Your teacher has just started going over monads—in Scheme, though—and you sit in the back of the classroom snarking about little tidbits of knowledge you know from Haskell. Suddenly, the teacher says (quite earnestly too), "Edward here seems to know a lot about monads. Why […]

  • March 8, 2010