Syllabus
Syllabus
Abstract Data Types (ADTs) – ADTs and classes – introduction to OOP – classes in Python –
inheritance – namespaces – shallow and deep copying Introduction to analysis of algorithms
– asymptotic notations – recursion – analyzing recursive algorithms.
List ADT – array-based implementations – linked list implementations – singly linked lists –
circularly linked lists – doubly linked lists – applications of lists – Stack ADT – Queue ADT
– double-ended queues.
Bubble sort – selection sort – insertion sort – merge sort – quick sort – linear search – binary
search – hashing – hash functions – collision handling – load factors, rehashing, and
efficiency.
Tree ADT – Binary Tree ADT – tree traversals – binary search trees – AVL trees – heaps –
multi-way search trees.
Text Books:
1. Rance D. Necaise, “Data Structures and Algorithms Using Python”, John Wiley &
Sons, 2011.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
“Introduction to Algorithms”, Third Edition, PHI Learning, 2010.
3. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Fourth Edition,
Pearson Education, 2014.
4. Aho, Hopcroft, and Ullman, “Data Structures and Algorithms”, Pearson Education
India, 2002.