DATA STRUCTURES & ALGORITHMS USING PYTHON

Paper Code: 
CBDA 211
Credits: 
3
Periods/week: 
3
Max. Marks: 
100.00
Objective: 

The course will enable the students to

  1. Develop the ability to choose between different available data structures.
  2. Develop skills in students to implement algorithms on real world problems and evaluate their performance

 

Course Outcomes (COs).

Course Outcome (at course level)

Learning and teaching strategies

Assessment Strategies

On completion of this course, the students will:

CO52. Identify how the choice of data structures and the algorithm design methods impact the performance of programs.

 

CO53. Analyse algorithm efficiency in terms of time and space complexity.

 

CO54. Implement linear data structures and analyse their applications

 

CO55. Identify the recursive tasks and design recursive algorithms.

 

CO56. Recognize the use of non-linear data structures in real life applications.

 

Approach in teaching:

Interactive Lectures, Group Discussion, Tutorials, Case Study, Demonstration

 

Learning activities for the students:

Self-learning assignments, Exercises related with Machine Learning algorithm, presentations

Class test, Semester end examinations, Quiz, Practical Assignments, Presentation

 

9.00
Unit I: 

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

 

9.00
Unit II: 

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.).

Recursion concepts and applications.

 

9.00
Unit III: 

Linked list: 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.

 

9.00
Unit IV: 

Stack: 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.

Queues: Introduction, Definition of Queue and its sequential representation, python implementation of queues, insert and remove operation, Applications and Priority queues

 

 

9.00
Unit V: 

Graphs and Trees: 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).

 

 

ESSENTIAL READINGS: 
  1. Tamassia, Roberto., Goodrich, Michael T.., Goldwasser, Michael H. Data Structures and Algorithms in Python. United States: John Wiley & Sons, Incorporated, 2013.
  2. Nagarajan, Abhishek S.., Vasudevan, Shriram K.., Nanmaran, Karthick. Data Structures Using Python. India: Oxford University Press, 2020.
  3. McKinney ,Python for Data Analysis. O’ Reilly Publication,2017.

 

REFERENCES: 

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:

  • Programming, Data Structures And Algorithms Using Python, Prof. Madhavan Mukund , swayam course: https://onlinecourses.nptel.ac.in/noc23_cs95/preview
  • https://www.tutorialspoint.com/python_data_structure/index.htm
  • https://www.geeksforgeeks.org/python-data-structures-and-algorithms/
  • https://jovian.ai/learn/data-structures-and-algorithms-in-python

 

 

JOURNALS:

  • Journal of Machine Learning Research (JMLR),ACM, https://dl.acm.org/journal/jmlr
  •  International Journal of Machine Learning and Cybernetics, springer : https://www.springer.com/journal/13042
Academic Year: