CS-310 — Analysis of Algorithms
Course Overview
| Programme | BS (Computer Science) |
|---|---|
| Office hours | Wednesday: 1100 – 1300 hours |
The primary objective of this course is to promulgate thinking and to teach students how to design and analyze algorithms — how to design algorithms, make them efficient in terms of time and space, improve and optimize algorithms, choose proper data structures, attack a problem, and recognize that not all problems are solvable and that many problems can be reduced to well-researched standard problems.
Course Outline
- Lecture 1Introduction to Course, Review of Data Structure and some Discrete Mathematics concepts Role of Algorithms in Computing
- Lecture 2Insertion Sort and its line by line analysis and its correctness
- Lecture 3Asymptotic Notations: Big O, Little O, Big Omega, little omega etc
- Lecture 4Introduction to Divide and Conquer Approach ,Merge Sort and its analysis.
- Lecture 5Recurrences and methods to solve recurrence equations:The Substitution Method,Recursion Tree Method,The Master Method
- Lecture 6Description of Quick sort, Performance of Quick sort
- Lecture 7Heaps, Maintaining a Heap Property, Building a Heap
- Lecture 8Heap sort AlgorithmPriority Queues
- Lecture 9Balanced trees (B-Tree or Red-Black Tree) and its insertion, searching algorithms
- Lecture 10Deletion from a balanced tree
- Lecture 11Counting Sort, Radix Sort, Bucket Sort
- Lecture 12Minimum and maximum, Selection in expected linear time, Selection in worst-case linear time
- Lecture 13Introduction to Dynamic Programming, Matrix Chain Multiplication
- Lecture 14Assembly-line Scheduling
- Lecture 15Longest common subsequence
- Lecture 16Optimal binary search trees
- Lecture 17Greedy Algorithm, An activity-selection problem
- Lecture 18Elements of greedy Strategy, Knapsack Problem, Variant of Knapsack problem
- Lecture 19Huffman Code
- Lecture 20Some Concepts about Graph, Representation of Graph
- Lecture 21Breadth First Search and its applications ,
- Lecture 22Depth First Search and its applications
- Lecture 23Topological Sort and Strongly Connected Components
- Lecture 24Minimum Spanning Tree, Kruskal Algorithm
- Lecture 25Prims Algorithm
- Lecture 26Single-source Shortest Paths, Bellman Ford Algorithm
- Lecture 27Single-source Shortest Path in DAGs, Dijkstra's Algorithm
- Lecture 28All-Pairs Shortest Path Problem, Floyd Warshall Algorithm
- Lecture 29Introduction to Flow Networks
- Lecture 30The Ford-Fulkerson Method
- Lecture 31NP Completeness, Polynomial time and solution and verification
- Lecture 32Final discussion on P vs. NP and course conclusions
Exam / Sessional Instruments
Quizzes + Home Works
25%
Mid Term
35%
Final Term
40%
Text Books
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. “Introduction to Algorithms”, MIT Press, Third Edition.
