Interview with Alan Kay: Dangers of CS design patterns

October 3, 2012 at 8:06 am 4 comments

I really enjoyed this interview with Alan.  I thought it captured well the pace of a conversation with him — you cover a lot of ground in a short amount of time, and I always walk away with a long to-read list.

There are some wonderful ideas in here that fly in the face of common practice, like the danger of programming design patterns and education about them, the problems of the Web, and how we need more collaboration in American business.  That first one is particularly important for the audience for this blog– design patterns assumes that the way we program today is the way that we ought to program, and that’s not a safe assumption.

That’s when I realized that adults were dangerous. Like, really dangerous. I forgot about those pictures for a few years, but I had nightmares. But I had forgotten where the images came from. Seven or eight years later, I started getting memories back in snatches, and I went back and found the magazine. That probably was the turning point that changed my entire attitude toward life. It was responsible for getting me interested in education. My interest in education is unglamorous. I don’t have an enormous desire to help children, but I have an enormous desire to create better adults.

via Interview with Alan Kay | Dr Dobb’s.

Entry filed under: Uncategorized. Tags: , , .

Who takes a MOOC (geographically)? Seeking K-12 teachers for study on learning App Inventor

4 Comments Add your own

  • 1. Baker  |  October 3, 2012 at 9:35 am

    Fascinating. Interviews like this always make me feel torn. Someone like Kay is so influential, it’s hard not to listen to him. But OO-Design Patterns in particular opened my eyes to so many things in programming – made my world make sense. Once I learned about them from a master, coupled with the work of Joe Bergin on Karel the Robot, it so changed the way I teach for the better it’s hard for me to believe in them as evil.

    Perhaps it’s just one’s perspective. I don’t teach OO Design Patterns as gospel – just as a view of the current state of the world, or as a nomenclature to help one “live amongst the natives.” I don’t think, for example, you can make much sense out of the Java API (or any API?) without understanding where words like “abstract”, “factory”, “Iterator”, etc. come from. When you can make sense of those words, you can make sense of the world.

    Not saying I disagree with Kay. Just that these thoughts are going to be bothering me all day (in a disruptive good way).

  • 2. alanone1  |  October 4, 2012 at 7:34 am

    I don’t think they are “evil”, just pernicious, given the current stagnated state of “programming thinking” along many dimensions, and the much studied tendency for biases and beliefs to be formed from early impressions that are difficult to shake later.

    I think the challenge in teaching programming is to be able to show early on a variety of approaches without violating “7±2”.

    Ideally, the approaches should include looks at how different languages represent similar ideas, and how different designs within a given language trade off.

    I don’t think this can be done the first day, but it needs to be done within the first few weeks.

    A strong deduction from this approach is that programming languages with lots of visible apparatus for optimization or that are just weirdly idiosyncratic should be avoided like the plague until much later.

    Making a “pedagogical language” for just these purposes that includes strong visualization features — a la the observations of Bret Victor and others — is strongly called for.

    In other words, one wants to teach “programming” not (say) Java.

  • 3. Baker  |  October 4, 2012 at 7:50 am

    Right. Teaching programming (not Java) is really what I believe I do. It’s why I do the first 10 or 12 weeks of my AP course in Karel the Robot. It doesn’t violate 7+/-2 because the context of all the problems is fixed. No cognitive load is spent (or lost) on trying to understand how the problem reduces to a computational one. The focus is entirely on using the limited set of language constructs provided to solve problems. And I have cooked up some pretty sophisticated problems in Karel 🙂

    • 4. alanone1  |  October 4, 2012 at 8:45 am

      Something “like” Karel the Robot is a good idea, but I would try to convince you that there are more fruitful pathways. This is one of many such situations that caused Einstein to remark “Things should be as simple as possible, but not simpler”.

      A rule of thumb could be to ask “What meta-idea(s) could and should be safely introduced very early that will prevent ‘hardening of the categories’ ?”


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,026 other followers


Recent Posts

Blog Stats

  • 1,986,867 hits
October 2012

CS Teaching Tips

%d bloggers like this: