CENG 218
Analysis and Design of Algorithms
The role of algorithms in computing, Growth of functions, recurrences, probabilistic analysis and randomized algorithms, dynamic programming, greedy algorithms, advanced data structures, graph algorithms, NP-Completeness.
Course Objectives
With both the theoretical and practical knowledge gained through this course a student is expected to have the necessary qualifications and background to be able to solve the mathematical problems encountered in real life situations
Recommended or Required Reading
Introduction to Algorithms, 3rd Ed., T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, MIT Press
Learning Outcomes:
1. To be able to propose a solution using algorithmic approach
2. To be able to identify algorithm design alternatives for a given problem
3. To be able to analyze the complexity of applications
| Topics |
| Overview |
| Complexity Theory |
| Asymptotic Notation |
| Recurrences |
| Dynamic Programming |
| Analysis, Design & Implementation |
| Midterm |
| Greedy Algorithms |
| Merging |
| Advanced Data Structures |
| Graph Algorithms |
| String Matching |
| Sorting |
| Problem solving |
Grading
Midterm 35%
Homework 20%
Final 40%
Quiz 5%


