Design and Analysis of Algorithms (DAA)

Design and Analysis of Algorithms (DAA)
intermediate10 weeks26 sections

A rigorous university-level course covering the mathematical foundations and practical design of efficient algorithms — from asymptotic analysis and recurrence relations to NP-completeness and approximation strategies.

What you'll learn

  • Analyze the asymptotic performance of algorithms using best, average, and worst-case complexity bounds.
  • Write rigorous correctness proofs for iterative and recursive algorithms.
  • Master major algorithmic design paradigms including Brute Force, Greedy, Dynamic Programming, Branch-and-Bound, and Backtracking.
  • Understand and apply fundamental data structures to design efficient algorithms.
  • Synthesize efficient algorithms for common engineering design situations such as graph traversal, shortest paths, and spanning trees.
  • Classify problems into complexity classes P, NP, NP-complete, and NP-hard.
  • Apply approximation and randomized algorithms to intractable problems.

Course outline

1. Introduction

2. Fundamental Algorithmic Strategies

3. Graph and Tree Algorithms

4. Tractable and Intractable Problems

5. Advanced Topics

6. Exam Preparation Kit

Chat with Kiro