The course will enable the students to
Course | Course Outcomes | Learning and teaching strategies | Assessment Strategies | |
Course Code | Course Title | |||
24CBDA211 | Data Structures and Algorithms using Python (Theory)
| CO61. Critically analyse the role of algorithms and the choice of data structures and their impact on the performance of programs. CO62. Examine array data structure and its applications in real world problems. CO63. Implement link list data structures, its types and analyse their applications. CO64. Evaluate applications of stack and queue data structures. CO65. Recognize the use of non-linear data structures in real life applications. CO66. Contribute effectively in course-specific interaction | Approach in teaching: Interactive Lectures, Discussion, Reading assignments, Demonstration.
Learning activities for the students: Self learning assignments, Effective questions, Seminar presentation. | Class test, Semester end examinations, Quiz, Practical Assignments, Presentation. |
Algorithm definition and its characteristics, comparing algorithms, Abstract data types, Algorithm analysis and its types, Asymptotic Notation: Omega-n Notation, Theta-0 Notation, Big O notation.
Introduction to Data Structure: Data Organisation. Types of Data structures: linear and nonlinear
Object oriented programming concepts
Arrays (one, two and multi-dimensional),.Array operations - slicing, dicing, searching, matrix operations, searching (linear search, binary search) and sorting arrays (Exchange Sorts (Bubble sort, Quick sort), Straight Selection sort, and Insertion sort.).
Introduction to linked list, linked list as a data structure, creation, insertion and deletion of nodes from a list, comparing linked lists with arrays. Doubly Linked lists, Circular linked lists .Application of linked lists.
Definition, Primitive operations, representing stack in Python, implementing the push and pop operation, infix, postfix and prefix expression (definition and examples), infix to postfix, evaluation of postfix expression, Applications. Recursion concepts and applications.
Queues: Introduction, Definition of Queue and its sequential representation, python implementation of queues, insert and remove operation, Applications and Priority queues
Terminology & Representations, Graphs & Multi-graphs, Directed Graphs, Elementary Graph algorithms, Representation of Graphs ,Traversals: BFS, DFS. Trees-Binary tree, Terminology & Representation, Traversal of binary trees, Binary Search Trees (BST).
SUGGESTED TEXT BOOKS
SUGGESTED REFERENCE BOOKS
1. Miller, Curtis. Hands-On Data Analysis with NumPy and Pandas: Implement Python Packages from Data Manipulation to Processing. United Kingdom: Packt Publishing, 2018.
2. Jean-Paul Tremblay, Paul G. Sorenson, “An Introduction To Data Structures With Application”, McGraw Hill Education,2017
e-RESOURCES:
1. Programming, Data Structures And Algorithms Using Python, Prof. Madhavan Mukund , swayam course: https://onlinecourses.nptel.ac.in/noc23_cs95/preview
2. https://www.tutorialspoint.com/python_data_structure/index.htm
3. https://www.geeksforgeeks.org/python-data-structures-and-algorithms/
4. https://jovian.ai/learn/data-structures-and-algorithms-in-python
JOURNALS:
1.Journal of Machine Learning Research (JMLR),ACM, https://dl.acm.org/journal/jmlr
2.International Journal of Machine Learning and Cybernetics, springer : https://www.springer.com/journal/13042