=
Instructor: Partha Sarathi Mandal [TEL: 03612582624, E-mail ID: psm
Department of Mathematics, Indian Institute of Technology Guwahati
Course title: Data Structures [MA251] [2-0-2-6]
Level: B.Tech.(M&C)
Prerequisites: CS101 or equivalent
Semester: Jul'23 - Nov'23
MA252:Lecture Time: Wednesday: 9-9:55, Thursday: 10-10:55
Lab Time: Tuesday: AL2(14:00 - 16:00)
Class Room: 5G4 (for MA251) and Dept. Lab (for Lab)
TA: Adri Bhattacharya (E-mail ID: a.bhattacharya)
Links: Unix Command Dictionary
Contents: Click Here
Exams & Marking: MA251: POP Quizzes/Assignments 30% (Theory + Lab) + Mid semester 30% (Theory + Lab) + End Semester 40% (Theory + Lab)
Texts:
  1. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, Prentice-Hall of India, 2009.
  2. E. Horowitz, S. Sahani and D. Mehta, Fundamentals of Data Structures in C++, University Press, 2008.
References:
  1. A. V. Aho, J. E. Hopcroft and J. D. Ullman, Data Structures and Algorithms, Pearson Education, 2006.
  2. A. M. Tannenbaum, Y. Langsam and M. J. Augenstein, Data Structures Using C++, Prentice-Hall of India, 1996.
  3. M. A. Weiss, Data Structures and Problem Solving Using Java, Addison-Wesley, 1997.
Announcement:
  1. First Lab class is on 1st Aug from 2PM-4PM.
Lecture Notes: ___________________________________________________________________________
Jul 26 Lecture 1 [Tests and marks distribution, Reference Books, Introduction, RAM Model, Estimating running time]
Jul 27 Lecture 2 [The problem of sorting, Insertion sort, Big-Oh notation]
Aug 01 Tutorial 1 (Lab) [Laboratory Policy, Introduction to OOP]
Aug 02 Lecture 3 [Asymptotic Notation]
Aug 03 Lecture 4 [Dynamic Memory, Function Overloading, Objects & Classes, Access Control, Memory allocation for objects, Reading Assignment]
Aug 08 Tutorial 2 (Lab) [Constructor, Default constructor, Copy constructor, Overloading Constructor Assignments]
Aug 09 Lecture 5 [Divide-and-conquer paradigm, Merge sort, Solving recurrences, Binary search, Powering a number]
Aug 10 Lecture 6 [Computing Fibonacci numbers, Matrix multiplication, Strassen's algorithm]
Aug 16 Lecture 7 [Stack operations, Use of stack: Infix to Postfix, Evaluation of a Postfix Expression, N-Queen's problem]
Aug 17 Tutorial 3 (Lab) [Pointers to objects, Friendship and Inheritance, Assignments]
Aug 22 Tutorial 4 (Lab) [Inheritance between classes, Derived classes, Multiple Inheritance, Assignments]
Aug 23 Lecture 8 [Queue operations, Circular Queue, Priority Queue]
Aug 24 Lecture 9 [Binary Tree, Binary Search Tree, SEARCH, FIND MIMIMUM, MAXIMUM, PREDECESSOR, SUCCESSOR]
Aug 30 Lecture 10 [Binary Search Tree: INSERT and DELETE]
Aug 31 Lecture 11 [Binary Tree Traversal Methods, Expression Tree]
Sep 05 Lecture 5 (Lab) [Overloading operators, Assignments]
Sep 12 Lecture 6 (Lab) [Polymorphism, Virtual function, Abstract base class, Assignments]
Sep 13 Lecture 12 [Construction of Binary Tree and Expression Tree]
Sep 14 Lecture 13 [Hashing]
Sep 26 Lecture 7 (Lab) [Templates and Namespaces]
Sep 27 Lecture 14 [Heap Sort]
Oct 03 Lab
Oct 04 Lecture 15 [Heap Sort contd., Priority Queues]
Oct 05 Lecture 16 [Counting sort - Sorting in linear time, Quicksort]
Oct 10 Lab Exam
Oct 11 Lecture 17 [Data Structures for Graph representation, Graph Search]
Oct 12 Lecture 18 [Breath First Search (BFS)]
Oct 17 Lab
Oct 18 Lecture 19 [Depth First Search (DFS)]
Oct 19 Lecture 20 [AVL Tree]
Oct 26 Lecture 21 [2-3 Tree: Creation]
Oct 31 Lab
Nov 01 Lecture 22 [2-3 Tree: Deletion, B Tree]
Nov 02 Lecture 23 [Red-Black Tree]