Rev: September 08,
Course Outline: CS 241 Credit Hours: 2-1
2022
Design and Analysis of Algorithms
Text Book:
Introduction to Algorithms (Latest edition) by Thomas H. Corman,
Charles E. Leiserson,
Ronald L. Rivest and Clifford Stein
Reference Books:
1. Algorithm Design, (1st edition, 2013/2014), Jon Kleinberg, Eva Tardos,
2. Algorithms, (4th edition, 2011), Robert Sedgewick, Kevin Wayne
Course Description:
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
Course Objectives:
The course is driven by a series of extensive programming
assignments that actively engage the students in exploring the insight
of algorithms. An emphasis will be given to the time and space
complexity of the algorithm. At the end of the course, the students
should be able to design and implement time and space efficient
algorithms
Pre-requisite: Data Structures & Algorithms
Rev: September 08,
Course Outline: CS 241 Credit Hours: 2-1
2022
Grading Policy:-
Mid Term 30 %
Final Term 70 %
Week-wise Breakdown:
Week Topic/Activities Chapter
1
Introduction to Algorithms
2
Time and Space Complexity
3
Asymptotic Analysis
4
Recurrence
5 Recursive Algorithms
6 Sorting Algorithms, Insertion sort, selection sort,
Bubble sort,
7 Quick sort , merge sort, shell sort
8
Search Algorithms
Mid Term Exams
9 String Matching
10 Heap Tree and Sort
11
Universal Hashing
12 Divide and Conquer
13
Dynamic Programming
14 Amortized Analysis
15
Greedy Approach
16
Graph Theory
Final Exam