Data Structures and Algorithms

The heart of computer science: the containers that hold data and the procedures that transform it. From stacks and trees to searching, sorting, and the powerful algorithmic design techniques — divide and conquer, greedy choices, dynamic programming — that solve hard problems efficiently.

This subject course follows the topic vertically, across the years it spans. Some lessons are already written; the rest are shown as placeholders.

Year 1 — Data Structures I

  1. Stacks
  2. Queues
  3. Linked Lists
  4. Trees
  5. Binary Search Trees
  6. Graphs
  7. Hash Tables
  8. Priority Queues

Year 1 — Introduction to Algorithms

  1. Linear Search
  2. Binary Search
  3. Bubble Sort
  4. Insertion Sort
  5. Merge Sort
  6. Algorithm Efficiency
  7. Big-O Notation

Year 2 — Algorithms & Complexity

  1. Divide and Conquer
  2. Greedy Algorithms
  3. Dynamic Programming
  4. Tree Traversals
  5. Graph Traversal: BFS and DFS
  6. Dijkstra's Shortest Path
  7. The Bellman–Ford Algorithm
  8. A* Search