Data Structures and Algorithms Using Python (Theory)

Paper Code: 
24CBDA211
Credits: 
03
Periods/week: 
03
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: 

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.

 

9.00
Unit I: 
Introduction to Algorithms and Data Structure

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

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

 

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

 

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: 

SUGGESTED TEXT BOOKS

  1. Tamassia, Roberto., Goodrich, Michael T.., Goldwasser, Michael H. Data Structures and Algorithms in Python. United States: John Wiley & Sons, Incorporated, Latest ed.
  2. Nagarajan, Abhishek S.., Vasudevan, Shriram K.., Nanmaran, Karthick. Data Structures Using Python. India: Oxford University Press, 2020.
  3. Goodrich, Michael T., Roberto Tamassia, and Michael H. Goldwasser. Data Structures and Algorithms in Python: An Indian Adaptation. Wiley Publications, 2021

 

REFERENCES: 

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 

Academic Year: