This course presents many computer algorithms and covers engineering issues in algorithm design, as well as mathematical aspects of algorithm analysis. The students will be exposed to an algorithm design process that begins with problems arising across the full range of computing applications, builds on understanding of algorithm design techniques, and results in the development of efficient solutions to these problems. Topics include: Basic and Advanced Data Structures, Algorithm Analysis, Graph Algorithms, Sorting and Order Statistics, Advanced Design and Analysis Techniques, NP and Computational Intractability, Approximation Algorithms, Randomized Algorithms.
Prerequisites
CS 380 or its equivalent or CS 503 or its equivalent