Memoization optimizes recursion by saving results of function calls. When fib(n) is called, it first checks if the answer is already stored in memo. If found, it returns that value immediately, skipping repeated calculations. If not found, it computes fib(n) recursively, stores the result in memo, and returns it. This process is repeated for smaller values until base cases are reached. The execution table shows each step, including calls, memo checks, updates, and returns. The variable tracker shows how memo array fills up with computed Fibonacci numbers. Key moments clarify why memo checks happen before recursion and why storing results is essential. The visual quiz tests understanding of memo state and recursion flow. Overall, memoization changes slow exponential recursion into fast linear computation by remembering past answers.