Ada-Developers-Academy / core-unit-3

4 stars 8 forks source link

Leave Divide and Conquer in Algo Strategies, remove Dynamic Programming, add Linked Lists #54

Open tildeee opened 3 years ago

tildeee commented 3 years ago

For C16, it would be better to bring back Linked Lists, remove Dynamic Programming.

Divide and Conquer probably seems reasonable to keep?

@CheezItMan @anselrognlie

CheezItMan commented 3 years ago

I like it, especially as divide & conquer ties in with binary search and mergesort.

anselrognlie commented 3 years ago

100% agree! Dynamic Programming is super interesting, but not necessary for junior devs. Linked lists are much more likely to be encountered in interview questions, and serve as a foundation for thinking about trees and graphs.

In some respects, Divide and Conquer is even a bit overkill (as aside from the canonical binary search (and variants) and merge/quick sort how many divide and conquer algorithms can any of us actually name???). It's useful to formalize the concept, in that we already talked about binary search and merge sort, and gives the reader a bit more programming vocabulary.

Maybe it would better be included as a follow on to the recursive lesson as additional reading? The current Divide and Conquer lesson has no questions (other than key take-aways) and the problem set was focused on Dynamic Programming, so simply merging this in with the recursion lesson wouldn't add additional work (other than the reading) and would also make the callout about revisiting merge sort in recursion accurate.