Sorting, selection algorithms, searching algorithms, data structures like an array, queue, heap, stack, trees, graphs, binary search trees, divide and conquer algorithms, greedy algorithms, dynamic programming techniques, and graph search techniques like Breadth-first search and Depth-first search.