This document outlines the units covered in a Design and Analysis of Algorithms course. The 5 units cover: 1) introduction to algorithms and analysis, 2) divide and conquer algorithms like merge sort and matrix multiplication, 3) greedy algorithms like Prim's and Kruskal's minimum spanning tree algorithms, 4) dynamic programming algorithms like knapsack and longest common subsequence, and 5) backtracking, branch & bound, and NP-completeness. Key algorithms discussed include sorting, searching, divide and conquer, greedy, dynamic programming, and NP-hard problems. The course aims to teach algorithm design techniques and mathematical analysis of algorithm efficiency.