$ ls ~/lessons

Lessons

> Sorting Algorithms9 lessons

Algorithms that put elements in order, from simple methods to divide and conquer.

> Data Structures14 lessons

Ways to store and organise data, and the operations each one is good or bad at.

> Searching Algorithms5 lessons

Ways to find a value in data, from linear search to binary search.

> Graph Algorithms8 lessons

Algorithms that traverse nodes and edges and find paths and connections.

> Dynamic Programming6 lessons

Splitting a problem into overlapping subproblems and solving each once: memoization and tables.

> Backtracking4 lessons

Searching by building a solution step by step and undoing the last choice at dead ends: placements, subsets and orderings.

> String Algorithms3 lessons

Ways to find a pattern in text: from naive search to prefix tables and rolling hashes.

> Greedy Algorithms3 lessons

Algorithms that make the choice that looks best right now: when they are right and when they mislead.