UNIT I:
Python Primitives: Python overview, Objects in Python, Expressions, Operators and Precedence, Control Flow, Functions, Simple Input and Output, Exception handling, Iterators and Generators, Collections [Strings, Lists, Tuples, Dictionaries].
Learning Outcomes:
After completion of this unit, the student will be able to summarize various ways of representing data (L2) explain the working of linear and binary search algorithms (L2) compare various data representations and search algorithms (L2)
UNIT II:
Algorithm Analysis: Asymptotic Analysis and Big O Notation Recursion: What is recursion, examples [Factorial functions, Fibonacci series]. Array Based Sequences: Python Sequence types, low-level arrays, dynamic arrays, efficiency of python’s sequences, using array-based sequences. Searching: Sequential Search, binary search and algorithmic analysis. Sorting: Insertion sort, selection sort, bubble sort
Learning Outcomes:
After completion of this unit, the student will be able to summarize various ways of representing data (L2) explain the working of linear and binary search algorithms (L2) compare data representations and sorting algorithms (L5)
UNIT III:
Sorting: quick sort, merge sort and their algorithmic analysis. Linked lists: Single linked list, double linked list, circular linked list Stacks: Definition, operations: array implementation, linked list implementation. Queues: Definition, operations: array implementation, linked list implementation and applications, Priority Queue. DoubleEnded Queues.
Learning Outcomes:
After completion of this unit, the student will be able to
discuss how stacks and queues are implemented using arrays and linked lists (L2) explain the implementation of priority queues (L2) list the applications of stacks, queues and priority queues (L1) compare different types of linked lists (L5)
UNIT IV:
Trees: Definition, Tree properties, Binary trees: properties, implementation, tree traversals, Heap tree, Heap sort Search Trees: binary search tree, AVL trees and operations on AVL trees, and (2,3)-Trees
Learning Outcomes:
After completion of this unit, the student will be able to discuss the properties of trees, binary, binary search and AVL trees (L2) explain how operations such as insertion, deletion and traversal are performed on different types of trees (L2) analyze the complexity of operations on different tree types (L4)
UNIT V:
Graphs: ADT, data structure for graphs, graph traversal, Transitive closure, directed acyclic graph, shortest paths [weighted graphs, dijkstra’s algorithm], minimum spanning trees [Prim’s, Kruskal’s, disjoint partitions, union-find structures].
Learning Outcomes:
After completion of this unit, the student will be able to demonstrate different graph representations and operations (L2) illustrate the working of common sorting algorithms (L2) analyze the computational efficiency of algorithms for sorting (L4)
Text Books:
1. Michel T. Goodrich, Roberto Tamassia, Michel H. Goldwasser, Data Structures & Algorithms in Python, Willey March, 2013. ISBN: 978-1-118-29027-9.
2. Rance D. Necaise, Data Structures & Algorithms using Python, John Willey & Sons, India. ISBN 9788126562169.
Reference Books:
1. Wesly J.Chun, Core Python Programming, 2/e, Prenctice Hall.
2. Manohar Swmynathan , Mastering Machine Learning with Six Steps , Apress, ISBN-13: 978-1-4842-2866-1
3. José Unpingco, Python for Probability, Statistics, and Machine Learning, Springer ISBN 978-3-319-30717-6 (eBook)
4. Reema Thareja, Python Programming using problem solving Approach, Oxford University, Higher Education Oxford University Press, First edition, ISBN-10: 0199480173,10 June 2017.
5. John V Guttag, Introduction to Computation and Programming Using Python, Revised and expanded Edition, MIT Press, 2013.
6. Kenneth A Lambert, Fundamentals of Python first Programmes, Copyrighted material, 1/e, Course Technology Inc., 6th February 2009.
7. John B. Schneider Shira Lynn Broschat Jess Dahmen, Algorithmic Problem Solving with Python