Recursion is just induction backwards.<p>But you need to know what a stack is - because it gives you the practical depth to which you can recurse. Ditto with tail recursion optimization.<p>And that is why C should be mandatory. You must be able to translate the mathematical concepts into something real and tangible.