Design and Analysis of Algorithms
Credit Hours: 3 Prerequisites: Data Structures and Algorithms
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to: Domain BT Level*
1. Explain what is meant by “best”, “expected”, and “worst”
case behavior of an algorithm
2. Identify the characteristics of data and/or other conditions
or assumptions that lead to different behaviors.
3. Determine informally the time and space complexity of
simple algorithms
4. List and contrast standard complexity classes
5. Use big O, Omega, Theta notation formally to give asymptotic
upper bounds on time and space complexity of
algorithms
6. Use of the strategies(brute-force, greedy, divide-and- conquer, and
dynamic programming) to solve an
appropriate problem
7. Solve problems using graph algorithms, including single- source
and all-pairs shortest paths, and at least one
minimum spanning tree algorithm
8. Trace and/or implement a string-matching algorithm
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A=Affective domain
Course Content:
Introduction; role of algorithms in computing, Analysis on nature of input and size of input
Asymptotic notations; Big-O, Big Ω, Big Θ, little-o, little-ω, Sorting Algorithm analysis, loop
invariants, Recursion and recurrence relations; Algorithm Design Techniques, Brute Force Approach,
Divide-and-conquer approach; Merge, Quick Sort, Greedy approach; Dynamic programming;
Elements of Dynamic Programming, Search trees; Heaps; Hashing; Graph algorithms, shortest paths,
sparse graphs, String matching; Introduction to complexity classes;
Teaching Methodology:
Lectures, Written Assignments, Semester Project.
Course Assessment:
Sessional Exam, Home Assignments, Quizzes, Project, Final Exam
Reference Materials:
1. Introduction to Algorithms (3rd edition) by Thomas H. Corman, Charles E. Leiserson,
Ronald L. Rivest and Clifford Stein
2. Algorithm Design, (1st edition, 2013/2014), Jon Kleinberg, Eva Tardos,
3. Algorithms, (4th edition, 2011), Robert Sedgewick, Kevin Wayne