itcsbanner.jpg

Analysis and Design of Algorithms

Course Aim:
This course aims to introduce students to the techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include dynamic programming, greedy algorithms, amortized analysis, graph algorithms, graph and tree traversal, and shortest paths. Advanced topics may include network flow, computational geometry, and number-theoretic algorithms.
Course contents:
Introduction to algorithms, Asymptotic Notation, Proof Techniques for Algorithms, Divide-and-Conquer Algorithms, Graphs: The Basics, Graphs: Breadth First Search and Its Applications, Graphs: Breadth First Search and Its Applications, Dijkstra’s Shortest-Path Algorithm, Dynamic Programming I, Dynamic Programming II, Shortest Path Algorithms using Dynamic Programming, Greedy Algorithms.

Course ID
CSC231
Level
Undergraduate
Credit Hours
CH:3