This document outlines a course on design and analysis of algorithms. It covers topics like algorithm complexity analysis using growth functions, classic algorithm problems like the traveling salesperson problem, and algorithm design techniques like divide-and-conquer, greedy algorithms, and dynamic programming. Example algorithms and problems are provided for each topic. Reference books on algorithms are also listed.