Learnable Programming: read it, then turn it around in your own brain.

September 27, 2012 – 9:51 am

I’m cranking out my portfolio right now, so I’ll just paste in a quick variant of the email I sent some friends.

This is long, but very worth reading: Learnable Programming. Think about it in the context of:

  • Learning and teaching introductory programming
  • Learning and teaching other technical classes that are code-related: digital signal processing, system dynamics.
  • Designing environments and languages for programming, especially when programming is “not the point” (as for an intro electronics or robotics course where the code is incidental to the final project)
  • Implications for MOOCS and massively distributed teaching systems in general.

Don’t blindly agree with it right away. I don’t agree with everything; it’s useful in some contexts and not others, etc. But it is a thoughtful, insightful, well-written piece that’s worth looking at to see how someone thinks well about a difficult topic, and communicates it clearly.

Thanks to Diana Kimball for the post that led me to this article, as well as for her insightful thoughts on taking a CS class at long last as an MBA student.

Know someone who'd appreciate this post?
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Identi.ca
  1. One Response to “Learnable Programming: read it, then turn it around in your own brain.”

  2. I really like the “create by reacting/abstracting” ideas. Reminds me of Olin’s “do-learn.” It’s much easier to give feedback than to create from scratch. And it’s easier to generalize and make new connections once you have something in front of you, i.e. have some experience, than to start with abstraction and move towards the concrete.

    Also, dumping the parts bucket on the floor: it becomes clear what parts are available, and it can be more efficient to scan options visually than try to remember the exact phrasing to write out the code from scratch.

    Both these concepts seem to apply to any field, not just programming, and I wish they were more wide-spread.

    I wonder what it’d look like to take this approach to statistics software.
    Among statistics-specific programming languages, R is terrible under these conditions — but it’s still better than its competitors. If you do know the name of the command you need, it’s easy to get help at the command line instead of having to totally interrupt your workflow to pull out the manual. And you can provide parameter names inside functions to make your code more readable, dropping them only if you know them already.
    But there’s no stat software that I know that’ll quickly and cleanly react to changes in the model. For example, I could mouse over data distribution options (Normal, Beta, Exponential) and see the changes in the regression residual plots… Things like that could be quite useful.

    By Jerzy on Oct 29, 2012

What do you think?