Course Policy Data Structures and Algorithms
Mukesh Patel School of Technology Management and Engineering
Computer Engineering Department
Course Policy
Program/Branch/Semester : MCA / Semester - I
Academic Year : 2023-24
Course Code & Name : Data Structures and Algorithms
Credit Details : L T P C
3 0 2 4
Course Coordinator : Dr. Pravin Shrinath
Faculty
022-42334018
Contact No. & Email :
[email protected] Office : MPSTME building, 5A, 5th Floor
Office hours :
Other Course Faculty :
members teaching this
course
Course Faculty 2: Course Faculty :
Contact No. & Email: Contact No. & Email:
Office: Office:
Office Hours: Office Hours:
Course Faculty for Laboratory: Dr. Course Faculty for Tutorial:
Pravin Shrinath Contact No. & Email:
Contact No. & Email: Office:
Office: Office Hours:
Office Hours:
Queries by Emails are encouraged.
Course link : Portal Link
MS Teams Link
1 Introduction to the Course
1.1 Importance of the course
This course emphasises on implementation of linear and non-linear data structures and its use
in real life applications. The data structures learned in this course would be useful in
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
understanding and implementing concepts of some courses of higher semesters. Basically it is
prerequisite / useful for important courses such as operating system, computer networks,
database management systems, artificial intelligence and machine learning. This course also
emphasizes on learning different searching and sorting algorithms with its analysis.
1.2 Objective of the Course
This course imparts knowledge of data structures and algorithms so as to identify and
implement appropriate data structure and determine the computational complexity of the
given application.
1.3 Pre-requisite
1. Programming language – Procedure and Object oriented
programming.
2 Course Outcomes (CO) and mapping with Program Outcomes (PO)
2.1 Course Outcomes
After successful completion of the course, a student will be able to-
1. Understand the concept of data structures and computational
complexity
2. Identify and implement appropriate linear data structure for the
given problem.
3. Identify and implement appropriate non-linear data structure for the
given problem.
4. Differentiate various searching and sorting algorithms.
2.2 Teaching and evaluation scheme
Teaching Scheme Evaluation Scheme
Internal Continuous
Lecture
Practical Tutorial Assessment (ICA) Theory
Hours
Hours Hours Credit As per Institute Norms (3 Hrs.,
per
per week per week (50 Marks) 100 Marks)
week
3 2 0 3 Marks Scaled to 50 Marks Scaled to 50
3 Syllabus, Pre-class activity and References
Detailed Syllabus: (per session plan)
Unit Description Durati
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
on
1. Introduction 04
Introduction to data structure and its importance,
Classification of data structures, Basic operations,
Abstract data type, Performance analysis- time and
space complexity, Asymptotic Notations.
2. Linear Data Structure I 10
Representation of arrays in memory, Operations on
arrays -Traversal, Insertion, Deletion. Introduction
to Stacks, Operations on Stacks, Applications of
stacks - Expression conversion and evaluation
(Polish notation), Balanced parenthesis checker,
Recursion, Introduction to Queue,
Operation on Queues, Linear queue Circular queue,
Priority queue, Application of Queues.
3. Linear Data Structure II 07
Introduction to linked list, Representation of linked
list in memory, Singly linked list and its operations,
Introduction to Doubly Linked list Linked list
representation of Stack and Queues, Applications of
linked list – Polynomial Addition
4. Non-Linear Data Structures - I 10
Introduction, Binary tree terminologies,
Representation of Binary trees in memory, Binary
Tree traversal algorithms, Construction of Binary
Tree from traversals, Binary Search Tree: Insertion,
Deletion, Applications of tree data structure:
Expression trees, Huffman trees.
5. Non- Linear Data Structures - II 06
Introduction, Graph theory terminology,
Representation of graph: Adjacency Matrix,
Adjacency List, Graph Traversal: Breadth first
search, Depth first search, Applications of Graphs
(Problem Solving): Shortest path (Dijkstra’s
algorithm), Minimum Spanning Tree.
6. Searching and Sorting 08
Linear Search, Binary Search, Selection Sort,
Insertion sort, Merge sort, Introduction to Hashing
Total 45
3.1 Pre-class activity
Outline for preliminary study to be done for each unit will be provided prior to
commencement of each unit. Study material (video links, presentations, notes etc.) will be
made available on the student portal / MS Teams. Students are expected to go through this
material before attending the upcoming session. It is expected that the students put in at least
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
two hours of self-study for every one hour of classroom teaching. During the lecture session,
more emphasis will be given on in-depth topics, practical applications and doubt solving.
3.2 References
Text Books
1. Seymour Lipschutz, “Data structures with C”, Schaum’s Outlines, 1st
Edition, 2017.
2. Reema Thareja, “Data Structures using C”, Oxford University Press,
2nd Edition,, 2014.
3. Y. Langsam, M.J. Augenstein, A.M. Tenenbaum, “Data Structures
using C and C++”, PHI 2nd Edition, 2015.
Reference Books
1. Richard F. Gillberg, Behrouz A. Forouzen, “Data Structures – A Pseudo
Approach with C”, Cengage Publication, 2nd Edition 2004. (Classic)
2. Mark Allen Weiss, “Data Structures and Algorithm analysis in C++”,
PHI, 4th Edition, 2013.
3. Thomas, H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford
Stein, “Introduction to Algorithms”, MIT Press, 3rd Edition 2009.
4 Laboratory details
Building skills on implementation of linear and non-linear data structures. Also understand
the need of data structures in development of real life applications in the computer domain.
Designing and analyzing of algorithms is also on priority through implementation using
suitable programming language. Students are expected to recall, study and apply concepts of
different data structures, learnt during the class room teaching. Also, expected to develop real
life application on given problem statements.
The following 10 programming exercises will form the submission for laboratory
coursework.
Sr. Week Mapped
List of Lab Exercises
No. No.# CO
Implementation of structure / class and array of instances /
1 1 objects as data structure to implement real life application CO1
related to Library management system.
Implementation of simple queues and circular queue using
2 2 and 3 arrays and apply them in real life computer applications - CO2
Railway reservation system
To study and implement concept of Stack data structure and
3 4 CO2
use in recursion
4 5 and 6 To study and implement concept of Linked list data structure. CO2
Apply this knowledge in development of the Process
Scheduling algorithm for operating system using PCBs.
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
Implementation of doubly Linked List with following
operations:
5 7 1. Creation CO2
2. Insertion and
3. Deletion of the nodes
Representation of Binary trees in memory and
6 8 implementation of Binary Tree traversal CO3
algorithms,
Implementation of Binary Search Tree: Insertion
7 9 and Deletion operation Application of tree data CO3
structure as Huffman trees.
Implementation and representation of graph in
the memory: Adjacency Matrix, Adjacency List.
8 10 CO3
Implementation of Graph Traversal: Breadth first
search, Depth first search
Implementation of application of graph data
9 11 structure: Single source shortest path with: CO3
Dijkstra's algorithm.
Implementation of Linear search and binary
10 12 CO4
search, understand their difference
Implementation of Selection Sort and Insertion
11 13 sort and understand the difference between CO4
them
Course Project Evaluation : Presentation and
12 14 demonstration
13 15 Practical Examination with viva
5 Tutorial Plan: No Tutorial for this course
6 Assessment Policy
6.1 Component wise Continuous Evaluation Internal Continuous Assessment (ICA) and
Term End Examination (TEE)
Assessment ICA (100 Marks) TEE (100
Component (Marks scaled to 50) marks)
(Marks
scaled to
50)
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
Lab Lab Exam and Class Class Test1
Performance Viva participation and Class
Test 2
Weightage 10% 10% 10% 20% 50%
Marks 20 30 10 20+20 100
Timeline to Weekly after Last week of 14th Week of
submit the performance the term, please the term,
work for of every lab refer please refer
evaluation practical experiment list. experiment
experiment list.
6.2 Assessment Policy for Internal Continuous Assessment (ICA)
Assessment of ICA comprises of the following components.
1. Class test 1 and 2 (20 + 20 marks)
a. Two class tests will be conducted as per the academic calendar.
b. It may be conducted online/ offline for 20 marks each
2. Lab performance evaluation (20 marks)
a. Lab experiments
i. Continuous assessment on understanding and implementation of data
structures and relevant applications. In all, 11 experiments will be
conducted based on concepts learnt in the class, each carrying
weightage of 10 marks. At the end of the course, average of total
marks will be taken to obtain marks out of 10.
ii. Discussion of your work with your peers is allowed. However each
student is expected to submit his/her original work. Submissions which
are very similar will be marked zero. Assessment of the lab work will
be carried out based on parameters like timely completion of lab work
file, understanding of the experiment performed, originality in the
work, involvement of the student, regularity, discipline etc. during the
session.
3. Practical test and viva (20 marks) - test will be conducted based on the
concepts learnt, where student need to write complete executable program for
the given problem statement. Viva will be based on the test.
4. Implementation of Mini Project (20 marks)
a. Faculty will ask to make group of 2-3 students
b. Every group will be asked to design one unique and relevant problem
statement and develop mini project. Each group will present and demonstrate
project done. This activity will be evaluated for 20 Marks.
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
c. Assessment will be based on the concepts used to implement the problem,
demonstration, results obtained, originality, and understanding.
6.3 Assessment Policy for Term End Examination (TEE)
A written examination of 100 marks for 3 Hrs. duration will be conducted for the course as
per the academic calendar.
7. Lesson Plan
Session Mapped Reference
Topics
No. CO
Introduction TB1 and TB2
1 Introduction to data structure and its CO1
importance,
Classification of data structures, Basic CO1 TB1 and TB2
2
operations,
Abstract data type, Performance analysis- CO1 TB1 and TB2
3 time and space complexity, Asymptotic
Notations.
Abstract data type, Performance analysis- CO1 TB1 and TB2
4 time and space complexity, Asymptotic
Notations
Representation of arrays in memory, CO1 TB1 and TB2
5 Operations on arrays -Traversal, Insertion,
Deletion.
Introduction to Stacks, implementation of CO2 TB1 and TB2
6
stack, Operations on Stacks
Introduction to Stacks, implementation of CO2 TB1 and TB2
7
stack, Operations on Stacks
Applications of stacks - Expression CO2 TB1 and TB2
8
conversion and evaluation (Polish notation)
Applications of stacks - Balanced parenthesis CO2 TB1 and TB2
9
checker
10 Applications of stacks - Recursion, CO2 TB1 and TB2
Introduction to Queue using array with its CO2 TB1 and TB2
11
functionality as Linear queue
Operation on Queues, insertion, deletion and CO2 TB1 and TB2
12
reading values in Linear queue
13 Circular queue and its application CO2 TB1 and TB2
Priority queue with its advantages and CO2 TB1 and TB2
14
implementation
Understanding concepts of pointer with CO2 TB1 and TB2
15
examples required for Linked List.
16 Understanding concepts of pointer with CO2 TB1 and TB2
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
examples required for Linked List.
Introduction to linked list, Representation of CO2 TB1 and TB2
17
linked list in memory.
18 Singly linked list and its operations CO2 TB1 and TB2
19 Singly linked list and its operations CO2 TB1 and TB2
Introduction to Doubly Linked list and its CO2 TB1 and TB2
20
operations
Introduction to Doubly Linked list and its CO2 TB1 and TB2
21
operations
Linked list representation of Stack and CO2 TB1 and TB2
22
Queues
Linked list representation of Stack and CO2 TB1 and TB2
23
Queues
Applications of linked list – Polynomial CO2 TB1 and TB2
24
Addition
25 Introduction, Binary tree terminologies. CO3 TB1 and TB2
26 Introduction, Binary tree terminologies. CO3 TB1 and TB2
Representation of Binary trees in memory CO3 TB1 and TB2
27
and its access.
28 Binary Tree traversal algorithms, CO3 TB1 and TB2
29 Construction of Binary Tree from traversals CO3 TB1 and TB2
30 Binary Search Tree: Insertion, Deletion, CO3 TB1 and TB2
31 Binary Search Tree: Insertion, Deletion, CO3 TB1 and TB2
Applications of tree data structure: CO3 TB1 and TB2
32
Expression trees,
Applications of tree data structure: Huffman CO3 TB1 and TB2
33
trees.
34 Introduction, Graph theory terminology CO3 TB1 and TB2
Representation of graph: Adjacency Matrix, CO3 TB1 and TB2
35
Adjacency List,
Graph Traversal: Breadth first search, Depth CO3 TB1 and TB2
36
first search
Graph Traversal: Breadth first search, Depth CO3 TB1 and TB2
37
first search
Applications of Graphs (Problem Solving): CO3 TB1 and TB2
38
Minimum Spanning Tree.
Applications of Graphs (Problem Solving): CO3 TB1 and TB2
39
Shortest path (Dijkstra’s algorithm),
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
40 Linear Search and its applications CO4 TB1 and TB2
Binary Search and its applications and CO4 TB1 and TB2
41
comparison with linear search
Implementation and understanding of CO4 TB1 and TB2
42
Selection Sort,
Implementation and understanding the CO4 TB1 and TB2
43
concept of Insertion sort,
Implementation and understanding the CO4 TB1 and TB2
44
concept of Merge sort,
45 Introduction to Hashing with its applications CO4 TB1 and TB2
7 Teaching-learning methodology
Faculty will make a group of 2-3 students for any group based activity such as project,
presentation etc. Lecture and laboratory session will be conducted as follows-
1. Lectures:
o Outline for preliminary study to be done for each unit will be provided prior to
commencement of each unit.
o Deeper concepts and applications will be explained through Presentation /
Video Lectures.
o Problems based on concept will be solved during the session
o Some practical applications will be explain using programming environment
in class on Code block for better understanding of the concepts.
2. Laboratory:
o Lab manual consisting of theory and problem statements to support the lab
experiment, will be uploaded on student portal.
o Regular lab assessment and grading will be done. Students will be marked
based on parameters like completion of lab assignment, originality, logic
developed, interaction during the lab, submission, punctuality and discipline
10. Active learning techniques
Active learning is a method of learning in which students are actively or
experientially involved in the learning process. Following active learning techniques
will be adopted for the course.
1. Muddiest topic: Faculty will find out the least understood point/topic in the session. This
topic is then further explained to ensure that it is understood well.
2. Blended Learning: Students will be introduced to the topic at home while the in-depth
topics, applications and problems will be discussed by the faculty in the lecture session.
Outline for preliminary study to be done for each unit will be provided prior to
commencement of each unit. Preliminary study material (video links, presentation, notes
etc.) will be made available on the student portal / MS Teams.
Page PAGE 10 of NUMPAGES 10
Course Policy Data Structures and Algorithms
3. Brainstorming: Students will be asked to generate ideas on a certain topic, category or
question while the faculty will facilitate and record the answers on the
blackboard/whiteboard.
11. Course Material
Following course material is uploaded on the student portal: (give student portal link)
Course Policy
Lecture Notes
Lecture Videos
Lecture Presentations
Books / Reference Books / NPTEL video lectures link
Assignments
Lab Manuals,
List of Program Outcomes
12. Course Outcome Attainment
Following means will be used to assess attainment of course learning outcomes.
Use of formal evaluation components of continuous evaluation, assignments,
laboratory work, semester end examination
Informal feedback during course conduction
13. Academic Integrity Statement
Students are expected to carry out assigned work under Internal Continuous
Assessment (ICA) independently. Copying in any form is not acceptable and will
invite strict disciplinary action. Evaluation of corresponding component will be
affected proportionately in such cases. Plagiarism detection software will be used to
check plagiarism wherever applicable. Academic integrity is expected from students
in all components of course assessment.
Page PAGE 10 of NUMPAGES 10