Course Code & Number:
Level of Course:
Pre-requisites & Co-requisites:
Midterm Exam - 20%
Quiz - 30%
Homeworks - 30%
Final Exam - 20%
The objective of this course is to introduce advanced data structures and algorithm analysis techniques. This course introduces the use of graphs in problem solving and algorithm development and describes how to develop algorithms using advanced data structures.
Undirected graphs. Directed graphs. Minimum spanning trees. Shortest paths. Maximum flow and minimum cut. Radix sorts. Tries. Substring search. Regular expressions. Data compression. Reductions. Intractability. Linear programming.
Upon succesful completion of this course, a student will be able to
1. Use advanced data structures in modeling and solving problems
2. Use graphs and directed graphs in modeling problems
3. Implement sorting and searching algorithms using graph based data structures
4. Analyze an algorithm to measure its time complexity
5. Analyze an algorithm to measure its space complexity
6. Design algorithms with efficiency in mind