21CSC201J - Data Structures and Algorithms
21CSC201J - Data Structures and Algorithms
21CSC201J - Data Structures and Algorithms
21CSC201J Course
Data Structures and Algorithms Category
Professional Core L T P C
Code Name 3 0 2 4
Pre-requisite Co- Nil Progressiv
Courses Nil requisite e Courses Nil
Courses
Course Offering Department Computing Technologies Data Book / Codes / Standards Nil
Course Learning Rationale (CLR): The purpose of learning this course is to: Program Outcomes (PO) Program
Know about searching and sorting techniques used to handle a set of data along with time and 1 1 Specific
CLR-1 : 1 2 3 4 5 6 7 8 9 12 outcomes
space complexity 0 1
CLR-2 : Utilize various categories of list structures to develop solutions E
n
CLR-3 : Explore usage of Stack and Queues in processing data for real time applications gi E
n D
CLR-4 : Understand tree structure and its applications e e
n
v
CLR-5 : Utilize hash tables for data storage and use graphs to solve real time problems e si T
i
ri g h I P
r
n n Co e n r
o
g / nd M e d o
n
K d uct o n i j
m
n e inv d g v e
e
o v est e i i c
n
w el iga r n d t Lif
t E Co
le Pro o tio n e u M e P P
& t m P
d ble p ns T e a g Lo S S
S h m S
g m m of o r l t ng O O
u i uni O-
e Ana e co o a & . Le - -
s c cat 3
lysis n m l n T & arn 1 2
t s ion
t ple U d e F ing
a
o x s s a i
i
f pr a o m n
n
s obl g c W a
a
ol e e i o n
b
u ms e r c
Course Outcomes (CO): At the end of this course, learners will be able to:
ti t
i
k e
l
o y
i
n
t
s
y
CO-1:
Devise algorithms to arrange the data in required order and retrieve a specific datum in efficient 1 2 3 - - - - - - - - - 3 -
-
manner
CO-2:
Determine the type of list structure that could be used for solving a problem and implement it 2 3 3 - - - - - - - - -- -
3 -
using C programming language
CO-3: Devise solutions using linear structures Stack and Queue 2 3 3 - - - - - - - - - 3 -
-
CO-4: Express proficiency in usage of tree for solving problems 2 3 3 - - - - - - - - - 3 -
-
CO-5:
Implement Hash tables for storing data and algorithms to find shortest path between nodes in a 3 2’ 3 - - - - - - - - - 3 -
-
graph
Unit-1 : Introduction
Primitive data types, Structures, Self-referential structures, Pointers, Dynamic memory allocation, Matrix multiplication; Data Structure – Definition,
Types, ADT, Operations; Mathematical notations, Asymptotic Notations-Big O, Omega and Theta; Complexity – Time, Space, Trade off,
Searching-Linear Search and Binary Search; Sorting-Insertion sort, Bubble sort.
Unit-2 : Array and Linked List
Operations on List ADT – Create, Insert, Search, Delete, Display elements; Implementation of List ADT– Array, Cursor based Linked List; Types –
Singly Linked List, Doubly Linked List, Circular Linked List; Applications - Sparse Matrix, Polynomial Arithmetic, Josephus Problem.
Stack and Queues
Unit-3:
Operations on Stack ADT – Create, Push, Pop, Top; Implementation of Stack ADT – Array and Linked List; Applications - Infix to Postfix Conversion, Postfix Evaluation,
Balancing symbols, Function Calls, Tower of Hanoi; Operations on Queue ADT - Create, Enqueue and Dequeue; Implementation of Queue ADT – Array and Linked List;
Types of Queue - Circular, Double ended and Priority Queue, Applications – Scheduling.
Unit-4 : Trees
Introduction to Trees, Tree traversals, Binary Tree Representation, Complete Binary Tree, Binary Search Trees-Searching, Insertion and Deletion, Self-Balancing BST - AVL
trees, B trees, Red-black tree, Heap.
Unit-5: Hashing and Graphs
Hashing - Introduction, Hash functions, Collision avoidance, Separate chaining, Open Addressing, Linear Probing, Quadratic probing, Introduction to
Graph, Graph Traversal, Topological sorting, Minimum spanning tree – Prim's Algorithm, Kruskal’s Algorithm, Shortest Path Algorithm - Dijkstra’s
Algorithm.
Lab:
Lab 1: Problem solving using structures and pointers
Lab 2: Implementation of sorting and searching
Lab 3: Implementation of Matrix Multiplication – Dynamic Memory allocation
Lab 4: Array Implementation of List
Lab 5: Implementation of Linked List
Lab 6: Implementation of Doubly linked List
Lab 7: Implementation of Stack using array and Linked List
Lab 8: Implementation of Queue using array and Linked list
Lab 9: Applications of Stack, Queue
Lab 10: Implementation of Tree using array
Lab 11: Implementation of BST using linked list
Lab 12: Implementation of B-Trees
Lab 13: Implementation of Graph - Shortest path Algorithm
Lab 14: Implementation of Minimal Spanning Tree
Lab 15: Implementation of hash tables
1. Mark Allen Weiss, Data Structures and Algorithm Analysis in C, 2nd
ed., Pearson Education, 2015 4. A.V. Aho, J.E Hopcroft , J.D.Ullman, Data structures and Algorithms, Pearson
Learning 2. Reema Thareja, Data Structures Using C, 1st ed., Oxford Higher Education, 2003
Resources Education, 2011 5. Seymour Lipschutz, Data Structures with C, McGraw Hill, 2014
3. Thomas H Cormen, Charles E Leiserson, Ronald L Revest, Clifford 6. R.F.Gilberg, B.A.Forouzan, Data Structures, 2nd ed., Thomson India, 2005
Stein, Introduction to Algorithms 3rd ed., The MIT Press Cambridge, 201
Learning Assessment
Continuous Learning Assessment (CLA)
Summative
Formative Life Long* Final
CLA-I Average of Learning Examination
Bloom’s unit test CLA-II- Practice (40% weightage)
Level of Thinking (45%) (15%)
Theory Practice Theory Practice Theory Practice
Level 1 Remember 15% - - 10% 25% -
Level 2 Understand 30% - - 25% 30% -
Level 3 Apply 30% - - 30% 25% -
Level 4 Analyze 25% - - 25% 20% -
Level 5 Evaluate - - - 10% - -
Level 6 Create - - - - - -
Total 100 % 100 % 100 %
Course Designers
Experts from Industry Experts from Higher Technical Institutions Internal Experts
1. Dr. K. Vijaya, Associate Professor,
SRMIST
2. Dr. S. Poornima, Assistant Professor,
Dr. Mariappan Vaithilingam, Senior Engineering
Dr. Venkatesh Raman, Professor, Theoretical Computer SRMIST
Manager, Uber India Research and Development Pvt
Science, Institute of Mathematical Sciences 3. Dr. P. Saranya, Assistant Professor,
Centre, Bangalore.
SRMIST
4. Dr. K. Venkatesh, Assistant Professor,
SRMIST