ECE 606 - Algorithm Design and Analysis
Professor Shreyas Sundaram
This course provides an introduction to the analysis and design of algorithms. Emphasis will be placed on rigorous mathematical analysis of complexity, efficiency and correctness. Topics include sorting algorithms, data structures, dynamic programming, graph algorithms, complexity classes (tractability vs intractability of problems), and probabilistic analysis and design of randomized algorithms.
Introduction and Background
- Motivation and overview
- Growth of functions, asymptotic notation, solving recurrence equations
- Heapsort, quicksort, order statistics
- Stacks, queues, linked lists, hash tables, binary search trees, B-trees
Advanced Design and Analysis
- Dynamic programming
- Greedy algorithms
- Graph representations, searching on graphs
- Spanning trees, shortest paths, maximum flow
- Turing Machine model of computation
- Optimization vs. decision problems
- P, NP, coNP, PSPACE, EXPTIME
- Cook and Karp Reductions
- Approximation algorithms
Probabilistic Analysis and Randomized Algorithms
- Introduction to randomized algorithms
- Probability theory and randomized min-cut
- Expected run-time of quicksort
- Markov and Chebyshev Inequalities, randomized median computation
The final grade for the course will be based on a set of homework problems (approximately four – five assignments total), a midterm exam (date TBA) and a final exam.
Final Exam: 50%
Late turn-in policy
Late homework will not be accepted, unless prior arrangements have been made with the instructor.
Data Structures and Algorithms, Probability, or consent of instructor.
There is no required textbook. Parts of the course are based on the following books:
- T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, 3rd edition, 2009
- S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009
- M. Mitzenmacher and E. Upfal, Probability and Computing: Randomized Algorithms and Probabilistic Analysis, 2005
- J. Kleinberg and E. Tardos, Algorithm Design, 2005
Papers and electronic references may be made available on the course website.