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%
- CENG 500
- CENG 501
- CENG 502
- CENG 503
- CENG 504
- CENG 505
- CENG 506
- CENG 507
- CENG 508
- CENG 509
- CENG 511
- CENG 512
- CENG 513
- CENG 514
- CENG 515
- CENG 516
- CENG 517
- CENG 518
- CENG 521
- CENG 522
- CENG 523
- CENG 524
- CENG 525
- CENG 531
- CENG 532
- CENG 533
- CENG 534
- CENG 541
- CENG 542
- CENG 543
- CENG 544
- CENG 551
- CENG 552
- CENG 555
- CENG 556
- CENG 557
- CENG 561
- CENG 562
- CENG 563
- CENG 564
- CENG 565
- CENG 566
- CENG 567
- CENG 568
- CENG 590
- CENG 608
- CENG 612
- CENG 613
- CENG 631
- CENG 632
- CENG 641
- CENG 642
- CENG 643
- CENG 651
- CENG 661
- CENG 662
- CENG 663


