Design and Analysis of Advanced Algorithms

Course Code: CSE-601 | Credits: 3

Course Description

This course covers advanced techniques for designing and analyzing efficient algorithms for complex computational problems. Students will learn to apply sophisticated algorithmic paradigms to solve problems in various domains including graph theory, optimization, and computational geometry.

Learning Outcomes:
  • Analyze asymptotic complexity of advanced algorithms
  • Design algorithms using advanced techniques like amortized analysis and randomization
  • Apply approximation algorithms for NP-hard problems
  • Implement parallel and distributed algorithms
  • Evaluate algorithm performance in practical scenarios

Course Content

1. Review of Algorithmic Fundamentals
Asymptotic notation Divide-and-conquer Dynamic programming
2. Advanced Data Structures
Fibonacci heaps Van Emde Boas trees Persistent data structures
3. Amortized Analysis
Aggregate method Accounting method Potential method
4. Randomized Algorithms
Las Vegas vs Monte Carlo Randomized quicksort Min-cut algorithm
5. Approximation Algorithms
Performance guarantees PTAS and FPTAS LP rounding

Course Information

Instructor: Dr. Sarah Johnson

Schedule: Mon/Wed 10:00-11:30

Location: CS Building Room 205

Textbook: Algorithm Design by Kleinberg & Tardos

Prerequisites: CSE-201 (Data Structures) and CSE-301 (Algorithms)