Course Code Course Name L T P C IT0501 Data Structures and ...

106 downloads 68330 Views 61KB Size Report
complexity of the algorithms, and address the various algorithm design ... Mark Allen Weiss, Data Structures & Algorithm analysis in C, Second Edition, Pearson.
Course Code Course Name IT0501 Data Structures and Algorithms

L 3

T 0

P 3

C 4

Prerequisite: Knowledge in Object Oriented programming About the Course: This course will provide a thorough understanding of Linear and Non-Linear data structures and the algorithms to deploy them. The course will also provide the techniques for analysis of complexity of the algorithms, and address the various algorithm design techniques. Course Objectives: On completion of the course, the students would have gained, • Knowledge on Linear and Non-linear data structures • Techniques to design and analysis of algorithms to deploy the data structures Course Contents: Unit-1 Algorithm Analysis: Average and Worst case analysis, asymptotic Notation, amortized analysis, Arrays, Lists, Unit-2 Choice of appropriate Data structures: Stacks, Queues, Priority Queues Unit-3 Trees, Heaps and Hash tables. Applications to Shortest path and Spanning tree problems. Unit-4 Basic Strategies for Algorithm Design: Divide and Conquer, Introduction to Discrete optimization Algorithms: Dynamic Programming, Greedy algorithms. Graph algorithms: Depth First and Breadth First Searching NP – completeness, NP hard, Recurrence relations. Unit -5 Sorting and searching algorithms Suggested Books for Reading 1. Cormen, T.H., C.E.,Leiserson, R.L. Rivest and C.Stein. Introduction to Algorithms, Third Edition, PHI Learning, New Delhi, 2011. 2. Mark Allen Weiss, Data Structures & Algorithm analysis in C, Second Edition, Pearson Education, 2005

3. Alfred V. Aho, John E.Hopcroft, Jefrey D.Ullman, Data Structures and Algorithms, Addison-Wesley 4. Rohit Khurana, Data Structures and Object Oriented Programming with C++, Vikas Publishers, 2010 Detailed Lesson Plan: Unit

Lecture Topic

week

Week 1

• • •



I

Week 2

• • •

Week 3

• •

II

Week 4



Definition of algorithm Algorithm specifications Performance analysis of an algorithm -space complexity -time complexity - Worst case and average case Asymptotic Notations -Big-O, Big-Omega Ω -Big-Theta, little-O -little Omega. amortized analysis Linear Data structures -Self referential structures - Introduction to ADTs List ADT - Singly & doubly linked list Stack ADT -Array Implementation -Linked list implementation Applications of Stack -Reversing a string - Conversion of Infix to postfix - Evaluation of postfix expression Queue ADT -Array Implementation -Linked list implementation -Circular Queue -Priority Queue -Applications of Queue - CPU scheduling

Text/Ref Books 1, 4 PPT Chapter 1

1, 4 PPT Chapter 2 1, 4 PPT Chapter 3

1, 4 PPT Chapter 4

Week 5, Week 6

III

Week 7, 8



Tree ADT - Binary Tree - Array Implementation - Linked list Implementation - Binary Tree Traversal Techniques - Binary Search Tree (BST) -Tree Traversal - AVL Tree - Heap Tree - Splay Tree • Applications of Trees Hashing Techniques - Introduction to Hash table, hash function.

1, 4 PPT Chapter 5

Graphs - Graph Traversal -Depth First, Breadth First Applications of Graphs - Minimum Spanning Tree -krushkal’s algorithm Shortest Path algorithms

1, 4 PPT Chapter 6

-

1, 4 PPT Chapter 7

-

Algorithm Design Techniques - Brute Force - Divide and Conquer - Dynamic Programming - Greedy algorithms - Back Tracking - Branch and bound Knapsack algorithm

-

NP Hard, NP Complete problems

1, 4 PPT Chapter 8

-

Sorting Techniques -Insertion Sort -Shell Sort -Heap Sort - Merge Sort -Quick Sort -Radix Sort Comparision of Time complexities Searching Techniques -Linear search -Binary search

1, 4 1, 4 PPT Chapter 9

IV

Week 9, 10

V -

1, 4