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