CENG 611

Advanced Design and Analysis of Algorithms

This course examines a variety of theoretical issues that have important practical consequences in the design and analysis of algorithms. We emphasize the importance of asymptotic analysis and the common methodology used in the analysis of sequential and parallel algorithms. We will analyze the factors that influence the performance of algorithms on different computer architectures (such that many cores and parallel computers and high performance computers) and their implications on scientific applications of interest. We will survey major design strategies used in the complexity analysis of different algorithms. New models for parallel computation will be studied and critically evaluated. The complexity and limitations of these models will be discussed.

Course Objectives

Algorithms are important for scientific researches and engineering due the changing technologies. These algorithms should be evaluated and optimized from many points such as their used time and space, complexities. The aim of the course is to learn to the students related concepts, techniques and methodologies

Recommended or Required Reading

Introduction to Algorithms, second edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The MIT Press, 2001

Learning Outcomes

To be able to analyze the complexity of applications
To identify algorithm design alternatives for a given problem
To suggest algorithmic solutions for the given problems
To recognize the characteristics of algorithm approach alternatives

Topics
Fundamentals: asymptotic analysis
Design and analysis of sequential algorithms
Divide-and-conquer approach
Dynamic programming
Greedy algorithms
Analysis of a few sequential and parallel algorithms
Computational complexity
Probability and average complexity of algorithms
Introduction to Lower Bound Theory
Performance analysis and evaluation of parallel systems
Models of parallel computation
Space-Time tradeoffs and Memory-Hierarchy tradeoffs

Grading

Midterm 25%

Homework 40%

Final 35%