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%

Instructor(s)

Research Assistant Dr.
Professor