This document describes a Design and Analysis of Algorithms course taught by Dr. Monika Bansal. The course covers algorithm design techniques like divide and conquer, greedy algorithms, and dynamic programming. It aims to help students analyze algorithm performance, choose appropriate algorithms, and understand how data structures and algorithms impact program performance. The syllabus covers advanced data structures, design analysis techniques, graph algorithms, and advanced algorithm design. Insertion sort is presented as an example algorithm, and its worst case running time is analyzed asymptotically and shown to be quadratic.