It is meant to be an easier read than CLRS, so I'm excited to see that Khan Academy is thinking along the same lines! I have been thinking about how to make algorithms easier to understand for the last year, so I have some feedback. Some of it is critical, so first I want to say how much I LOVE that Khan Academy is doing this. I really like the interactive nature of this, and I really like that you have comments. I think that's one advantage of e-books vs traditional books: you can't comment on a paper book. I like the sequencing too (it is very similar to my table of contents, which is cool to see).
What I don't like:
I don't understand why you have four sorting algorithms here. What does insertion sort add over selection sort? I chose to only include selection sort and quicksort in my book. I think once you know those two, you can figure out insertion sort and merge sort if needed. It doesn't add a lot for the reader...I would rather they spend mental effort learning something new.
Similarly, why include big-omega notation? I use a writing principle called "just-in-time" vs "just-in-case". It feels like Big-Omega notation was included "just in case" the reader needs to know it for a later section. I would rather it be taught "just-in-time", i.e. right when the reader needs to know big-omega notation to proceed.
I struggled with the recursion section. My challenge was:
- come up with a real-world example that uses recursion.
- come up with an example where the recursive solution is more elegant than a while loop. Otherwise, why use recursion?
It looks like you had the same challenges. I wish you guys would swap out the factorial example for something that solves a real problem: looking through a directory for a file, for example.
It would be great to see more interactivity in the harder sections too. For example, in "overview of quicksort", I would like to see an animation of the sorting (I am a visual learner).
Overall this is still amazing. Algorithms are such a core topic, and there are no good resources for beginners out there. Very happy to see Khan Academy take this step.