SCS2205 Algorithm Design and Analysis

Course Unit Title

SCS2205 Algorithm Design and Analysis

Side Navigation

Course Unit Description

The goal of the course is for students to learn and practice a variety of problem-solving strategies and analysis techniques. Students learn how to think about problems, their solutions, and the quality of those solutions, Worst and average case analysis, Recurrences and asymptotic. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. 

Course Objectives

  • To develop an understanding about basic algorithms and different problem-solving strategies.
  • To improve creativeness and the confidence to solve non-conventional problems and expertise for analyzing existing solutions.

Course Outcomes

  • Graduates will be able to evaluate and analyze complexity of algorithm.
  • Graduates will be able to understand divide and conquer techniques of algorithm design.
  • Graduates will be able to understand greedy and dynamic programming in algorithm design.
  • Graduates will be able to understand how backtracking and branch and bound technique can be used in algorithms.
  • Graduates will be able to adopt best algorithm design techniques to solve the given problem.