1. Lists, binary search and strings
  2. Linked lists and stacks
  3. Hash table and maths
  4. Trees and graphs
  5. Depth first search
  6. Breadth first search
  7. Backtracking
  8. Greedy and divide and conquer algorithms
  9. Dynamic programming