Syllabus
Unit I
Algorithm Analysis – Methodologies for Analyzing Algorithms – Asymptotic Notation – Recurrence Relations – Data Structures – Linear Data Structures – Stacks – Queues – Linked- Lists – Vectors -Trees -Binary Search Trees – AVL trees – Red-Black trees – B-trees – Hash- Tables -Dictionaries – Associative Arrays – Database Indexing – Caches – Sets.
Unit II
Searching and Sorting -Insertion and Selection Sort – Quick sort – Merge sort – Heap sort – Bucket Sort and Radix Sort – Comparison of sorting algorithms and lower bounds on sorting – Fundamental Techniques – The Greedy Method – Divide and Conquer.
Unit III
Dynamic Programming – Graph Algorithms – Breadth-first search – Depth-first search – Topological sort – strongly connected components – Minimum Spanning Trees – Single- Source Shortest Paths – All-Pairs Shortest Paths – Maximum Flow – Network Flow and Matching – Flows and Cuts
Objectives and Outcomes
Learning Objectives
LO1 To introduce the linear and non-linear data structures and explore its applications.
LO2 To provide representation using graph data structure.
LO3 To impart knowledge of basic sorting and searching algorithm.
LO4 To instil the concept of designing efficient algorithms using data structures.
Course Outcomes
CO1 Ability to understand linear and non-linear data structures.
CO2 Ability to apply appropriate data structures to solve computational problems.
CO3 Ability to analyse the algorithms and its complexity.
CO4 Ability to design and employ algorithms using relevant data structures in real-time
applications.
CO-PO Mapping
| CO/PO |
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
| CO1 |
– |
– |
3 |
– |
2 |
| CO2 |
– |
– |
3 |
– |
3 |
| CO3 |
– |
– |
3 |
2 |
3 |
| CO4 |
– |
– |
3 |
3 |
3 |
Text Books / References
References
- Thomas Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
“Introduction to Algorithms”, Third Edition, MIT Press, 2009.
- Robert Sedgewick and Kevin Wayne, “Algorithms”, Fourth Edition, Addison Wesley,
2011.
- Kurt Mehlhorn and Peter Sanders, “Data Structures and Algorithms: The Basic Toolbox”, Springer,
- John Guttag, “Introduction to Computation and Programming using Python”, MIT
Press, second edition, 2016