Analysis of Algorithms (BTBS347)
The main aim of this course is to introduce the students to the analysis and the design of algorithms for improving students' analytical thinking skills. The course focuses on algorithms and problem solving techniques. Major concepts include; runtime analysis, complexity analysis of sorting, searching, divide and conquer algorithms, dynamic programming, greedy algorithms, graph algorithms, cryptographic algorithms, and string matching algorithms. Throughout the semester, well-known algorithms such as dynamic programming, basic graph algorithms, greedy algorithms, minimum spanning trees, shortest path, and data compression will also be studied in detail.