A derivation-first approach to teaching algorithms
Ran Libeskind-Hadas · 2013
A common approach to teaching algorithms involves describing algorithms first and then proving their correctness afterwards. In this article we advocate a "derivation-first" approach in which algorithms are "derived," either from basic concepts or from simpler algorithms, before they are proved correct. We demonstrate how a number of "classical" algorithms can be derived, providing students with a more intellectually satisfying experience, a deeper intuition into how algorithm design works, and connections between algorithms that can be useful in developing algorithms for other problems.