Reaction for: Incorporating Problem-solving Patterns in CS1 by Danah

I love the idea of using analogies to explain concepts. However, I am not so certain how students (at least, at Brown) would react to using mathematical explanations. I know that seems to imply that we expect students to be stupid, but that is not the case. We just cannot guarentee that they will either like or understand mathematical analogies. [In fact, often students are able to understand the explanations but turn their minds off to it because "math sucks."] Instead of alienating people with those concepts, I find that it is far easier to explain with some worldly mathematical object. So, explain recursion with an onion. You may cry, but it is a good explanation and people often think about it. Recursion still triggers onion in my mind!

Almost all explanations like this (at least in the CS1 arena) need to contain math. There is so much that exists in the world that has math in it that people understand without realizing the math behind it. Use those objects. Use a phone book to teach binary searches. [I do like the exponential growth puzzles.]

I totally agree with the idea that these types of puzzles or games or analogies help students learn. I have found this to be true on hours and in my own personal growth. The explanations stick. Like I said with the onion, explanations that make sense to me create the analogies in my head and forever on, that is how I think about the concept. If analogies are not supplied, I create my own for storage.

I like this article 'cause I agree with it for the most part. I truly believe students learn better this way.


Reactions


Jon:

Like most things, I'm not sure you can say that all students benefit from analogies. Personally, I'm not a big analogy learner, since for me, an explanation of the actual concept, rather than an explanation of something that is similar, hits home better for me. Personally though, I like using "real life" objects if at all possible. For example, searching through a phonebook using a binary search isn't an analogy, it is really implementing that algorithm (though not with code). Also, like I have said before, finding an analogy that is helpful, but not misleading, is often tricky. I do agree that good analogies can help a lot of people understand difficult concepts.


Matt A

Another comment about analogies. I like them too, but too an extent. Some analogies get so caught up in themselves that the thing their trying to explain gets lost. I think that before you use an analogy you should make sure you are not further complicating things.


[BACK]