I was first exposed to mathematical induction in, I think, first-year algebra. Although I was able to struggle through the work, I didn't really recognize its power, and thought the whole thing a bit pointless. Blame either my young brain or mathematics education.<p>A couple years later when I started to take programming more seriously and was exposed to recursion, I did recognize the power there pretty quickly and made a point of getting good at thinking that way. But, I didn't see the link then, between mathematical induction and recursive functions. A few years after <i>that</i>, when I was exposed to mathematical induction again, it seemed like such an obvious and powerful tool, and I was amazed that I didn't recognize it for what it was on the first go around.<p>There is a saying:<p><i>when programming recursively, think inductively</i><p>...but the inverse is also true:<p><i>when reasoning inductively, think recursively</i><p>If you, or a student of yours, or your kid, or whatever, are having trouble with either concept, I would encourage you to study the other one. You probably can't truly understand one without groking the other anyway, and insights gained from the study of one will apply pretty much directly to the other.<p>This was an enjoyable read. Thanks.