Recently, I have been studying sort algorithms, and thinking about how to create effective interactive visualizations for them. So far, I've done a visualization for Quicksort that kind of shows the power of the divide-and-conquer approach of the algorithm, but does not deal with pivot selection strategy, or deal with the in-place nature of production versions. It seems that a lot of the time, the code for these things is overly concise, static (of course), and stalls deeper appreciation. In the case of Quicksort and pivot selection strategy, this attitude seems supported by this email from (eminent) J Bentley as he was coming up to speed on how a (fairly recent) dual pivot strategy worked; in particular,
I *finally* feel like I understand what is going on. Now that I (think that) I see it, it seems straightforward and obvious. J. Bentley, as quoted in this post on jdk list about new dual pivot approach for Quicksort in 2009
This got me to thinking back on Bret Victor's Thinking the unthinkable, and the importance of notation and interactivity for both learning and exploring new concepts that were previously "unthinkable".
|Communicating Technical Information with the Means of the Time|
|Harder to understand, but it was how they communicated at the time||What is the square which when taken with ten of its roots will give a sum of thirty nine? Now the roots in the problem before us are ten. Therefore take five, which multiplied by itself gives twenty five, and amount you add to thirty nine to give sixty four. Having taken the square root of this which is eight, subtract from this half the roots, five leaving three. The number three represents one root of this square, which itself, of course, is nine. Nine therefore gives the square. (al-Khwārizmī, as quoted in Thinking the unthinkable)||
|Better "visualization" for faster comprehension, exploration||$$x^2 + 10 x = 39$$
(800 years after al-Khwārizmī)
I'm still simmering on this. But I think it's appropriate to close with another quote from Bret Victor, and how it might apply for the next wave of understanding and education via interactive online visualizations, made easier and easier to create using the quickly evolving and improving web tools and libraries:
"The birth of modern mathematics is considered to be not any particular mathematical concept, but a user interface. B. Victor
"...a user interface..."