0% found this document useful (0 votes)
43 views21 pages

Final Adsa Coursepack 2024-25 Aug 14 2024

The document outlines the course structure for 'Advanced Data Structures and Algorithms' for B. Tech. (CSE) V Sem, detailing course objectives, prerequisites, program outcomes, and specific content covered in both theory and practical sessions. It emphasizes advanced algorithmic techniques and data structures, including dynamic programming, greedy algorithms, and various tree and graph structures. The course aims to equip students with the skills to analyze and implement complex computational solutions effectively.

Uploaded by

wmishra44
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views21 pages

Final Adsa Coursepack 2024-25 Aug 14 2024

The document outlines the course structure for 'Advanced Data Structures and Algorithms' for B. Tech. (CSE) V Sem, detailing course objectives, prerequisites, program outcomes, and specific content covered in both theory and practical sessions. It emphasizes advanced algorithmic techniques and data structures, including dynamic programming, greedy algorithms, and various tree and graph structures. The course aims to equip students with the skills to analyze and implement complex computational solutions effectively.

Uploaded by

wmishra44
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

COURSEPACK (Fall 2024-25)

1. SCHEME
The scheme is an overview of work-integrated learning opportunities and gets students out into the real
world. This will show what a course entails.

Course Advanced Data Structures and Course Type Integrated


Title Algorithms
Course R1UC503B Class B. Tech. (CSE) V Sem.
Code
Activity Credits Weekly Hours Total Number of Classes per Assessment in
Semester Weightage
Lecture 3 4
Instruction Tutorial

Practical
Tutorial
0 0

Theory
delivery

study
Self-

SEE
CIE
Practical 1 2
Self-study 0 0
Total 4 8 40 0 40 50% 50%
Course Dr. Anupam Kumar Course Dr. Subhash Gupta
Lead Sharma Coordinator
Names Theory Practical
Course Dr. Anupam Kumar Sharm Dr. Anupam Kumar Sharma
Instructors Dr. Subhash Chandra Gupta Dr. Subhash Chandra Gupta
Dr. Manoj Kumar Tyagi Dr. Manoj Kumar Tyagi
Dr. S Karpaga Selvi Dr. S Karpaga Selvi
Dr. Saurabh Singh Dr. Saurabh Singh
Dr. Gaurav Agrawal Dr. Gaurav Agrawal
Dr. Pooja Singh Dr. Pooja Singh
Dr. Sahil Kansal Dr. Sahil Kansal
Dr. Akhilendra Kumar Khare Dr. Akhilendra Kumar Khare
Mr. Akhilesh Kumar Tripathi Mr. Akhilesh Kumar Tripathi
Mr. Avaneesh Kumar Yadav Mr. Avaneesh Kumar Yadav
Mr. Gopal Chandra Jana Mr. Gopal Chandra Jana
Mr. Harshit Jain Mr. Harshit Jain
Dr. Himanshu Sharma Dr. Himanshu Sharma
Mr. Neeraj Kumar Bharti Mr. Neeraj Kumar Bharti
Ms. Pragya Agarwal Ms. Pragya Agarwal
Ms. Shweta Ms. Shweta
Dr. Vipul Narayan Dr. Vipul Narayan
Mr. Mayank Choudhary Mr. Mayank Choudhary
Mr. Jitendra Mr. Jitendra
Dr. Mohammad Faiz Dr. Mohammad Faiz
Mr. Vinod Kumar Mr. Vinod Kumar
Mr. Vikas Kumar Mr. Vikas Kumar
Mr. Ashwin Perti Mr. Ashwin Perti
1
Mr. Dileep Kumar Kushwaha Mr. Dileep Kumar Kushwaha
Ms. Pragati Gupta Ms. Pragati Gupta
Mr. Amar Singh Mr. Amar Singh
Mr. Manish Kumar Maurya Mr. Manish Kumar Maurya
Ms. Arpan Kumari Ms. Arpan Kumari
Mr. Deepak Mr. Deepak
Dr. Kanika Thakur Dr. Kanika Thakur

2. COURSE OVERVIEW
An advanced course in data structures and algorithms builds upon the foundational knowledge of
basic data structures and algorithms. It delves deeper into more complex data structures and
advanced algorithmic techniques. This course explores advanced data structures and algorithmic
techniques used in computer science and software development. It focuses on the design, analysis,
and implementation of data structures and algorithms for solving complex computational problems
efficiently.

3. COURSE OBJECTIVE
This course aims to familiarize students with algorithmic design techniques of dynamic
programming, greedy programming, and backtracking as well as advanced data structures
AVL Tree, B+ tree, Quad-Tree, Octree, and Trie. They will be taught to compute time and space
complexities of algorithms and implement them.

4. PREREQUISITE COURSE
PREREQUISITE COURSE YES
REQUIRED
If, YES please fill in the Prerequisite Prerequisite course name
Details. course code
Data Structure and algorithms.

5. PROGRAM OUTCOMES (POs): AS DEFINED BY CONCERNED THE APEX BODIES


PO1 Computing Science knowledge: Apply the knowledge of mathematics, statistics,
computing science, and information science fundamentals to the solution of complex
computer application problems.

PO2 Problem analysis: Identify, formulate, review research literature, and analyze complex
computing science problems reaching substantiated conclusions using first principles of
mathematics, natural sciences, and computer sciences.

PO3 Design/development of solutions: Design solutions for complex computing problems


and design system components or processes that meet the specified needs with appropriate
consideration for the public health and safety, and the cultural, societal, and environmental
considerations.

PO4 Conduct investigations of complex problems: Use research-based knowledge and


research methods including design of experiments, analysis and interpretation of data, and
synthesis of the information to provide valid conclusions.
2
PO5 Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern computing science and IT tools including prediction and modeling to complex
computing activities with an understanding of the limitations.

PO6 IT specialist and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to theprofessional computing science and information science practice.

PO7 Environment and sustainability: Understand the impact of professional computing


science solutions in societal and environmental contexts, and demonstrate the knowledge of,
and need forsustainable development.

PO8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of computing science practice.

PO9 Individual and teamwork: Function effectively as an individual, and as a member or


leaderin diverse teams, and in multidisciplinary settings.

PO10 Communication: Communicate effectively on complex engineering activities with


the IT analyst community and with society at large, such as, being able to comprehend and
write effective reports and design documentation, make effective presentations, and give and
receive clear instructions.

PO11 Project management and finance: Demonstrate knowledge and understanding of the
computing science and management principles and apply these to one’s own work, as a
memberand leader in a team, to manage projects and in multidisciplinary environments.

PO12 Life-long learning: Recognize the need for and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological
change.

6. PROGRAMME SPECIFIC OUTCOME (PSO): The students of Computer Science and


Engineering shall:
PSO1: Have the ability to work with emerging technologies in computing requisite to
Industry4.0.
PSO2: Demonstrate Engineering Practice learned through industry internship and research
project to solve live problems in various domains.

3
7. COURSE CONTENT (THEORY+ PRACTICAL)
Contents (Syllabus)

Theory
Review of Algorithmic Complexity: Definition and significance of algorithmic complexity
Time and space complexity, Big O notation, Omega, and Theta notations, analyzing basic
algorithms, solve problems on basic time complexity analysis.

Arrays: Static vs. dynamic arrays. Find the Maximum and Minimum Elements in an Array,
Reverse an Array, Find the Kth Smallest/Largest Element in an Array.

Linked lists: Implementation of Singly Linked Lists, doubly linked list, and circular linked list.
Operations on Linked List. Insertion, Deletion, Traversal.

Stacks: Implementation of Stack using linked list, Application of stack: infix, Prefix and Postfix
Expressions, infix to postfix expression, Evaluation of postfix expression.

Recursion- Principles of recursion, Tail recursion, problem solving using recursion, Fibonacci
numbers, a^n (a raised to the power n), reverse of a string.

Queues: Implementation and operations on Queue using linked list. Priority queue (heap).

Hashing: Concept of Hashing & Collision resolution Techniques used in Hashing.

Tree: Linked List Representation, Binary Search Tree, Tree Traversal algorithms: In-order, Pre-
order, and Post-order, Constructing Binary Tree from given Tree Traversal, Operation of
Insertion, Deletion, Searching Modification of data in Binary Search.

Graph: Representations: Adjacency Matrices, Adjacency List, Graph Traversal: Depth First
Search & Breadth First Search. Detect Cycle in an Undirected Graph, Connected components in an
Undirected Graph.

Minimum Cost Spanning Trees: Prims and Kruskal algorithm. Shortest Path algorithm: Warshal
Algorithm.

Dynamic Programming: Elements of dynamic programming, longest common subsequence,


Coin change problem, 0/1 Knapsack.

Greedy Algorithms: Elements of the greedy strategy, Fractional knapsack, Activity Selection,
Huffman coding, job sequencing Problem.

Back Tracking: Sum of subset, N queens’ problem.

Probabilistic Data Structures: Introduction to Probabilistic Algorithms, Advantages and Trade-


offs of Probabilistic Data Structures, Applications and Use Cases, Structure and Function of
Bloom Filters, Hash Functions and Their Role, False Positives and Space Efficiency, Variants of
Bloom Filters (e.g., Counting Bloom Filter).

4
S.
No. Practical
Find the Maximum and Minimum Elements in an Array: Write a function to find the
1
maximum and minimum elements in an array.
2 Reverse an Array: Write a function to reverse an array in place.
Find the Kth Smallest/Largest Element in an Array: Write a function to find the Kth
3
smallest or largest element in an array.
Sort an Array of 0s, 1s, and 2s: Given an array containing only 0s, 1s, and 2s, sort the
4
array in linear time.
Move All Zeroes to End of Array: Write a function to move all zeroes in an array to the
5
end while maintaining the relative order of other elements.
6 Reverse a Linked List: Write a function to reverse a singly linked list.
7 Detect a Cycle in a Linked List: Write a function to detect if a cycle exists in a linked list.
Find the Middle of a Linked List: Write a function to find the middle element of a linked
8
list.
Merge Two Sorted Linked Lists: Write a function to merge two sorted linked lists into one
9
sorted linked list.
Remove Nth Node from End of List: Write a function to remove the Nth node from the
10
start/end of a linked list.
Implement a Stack Using Arrays/Lists: Write a function to implement a stack using an
11
array or list with basic operations: push, pop, peek, and isEmpty.
Implement a Stack Using Linked List: Write a function to implement a stack using alinked
12
list with basic operations: push, pop, peek, and isEmpty.
Check for Balanced Parentheses: Write a function to check if a string containing
13
parentheses is balanced.
Evaluate Postfix Expression: Write a function to evaluate a given postfix expression.
14
Next Greater Element: Write a function to find the next greater element for each elementin
15
an array.
Implement a Queue Using Arrays/Lists: Write a function to implement a queue using an
16
array or list with basic operations: enqueue, dequeue, front, and isEmpty.
Implement a Queue Using Linked List: Write a function to implement a queue using a
17
linked list with basic operations: enqueue, dequeue, front, and isEmpty.
Implement a Circular Queue: Write a function to implement a circular queue with basic
18
operations: enqueue, dequeue, front, rear, and isEmpty.
Generate Binary Numbers from 1 to N: Write a function to generate binary numbers from1
19
to N using a queue.
Implement a Queue Using Stacks: Write a function to implement a queue using two
20
stacks. (vice-versa)
Implement a Binary Tree: Write a class to implement a basic binary tree with insert,delete,
21
and traversal operations.
Inorder Traversal: Write a function to perform inorder traversal of a binary tree.
22
Preorder Traversal: Write a function to perform preorder traversal of a binary tree.
23
Postorder Traversal: Write a function to perform postorder traversal of a binary tree.
24

: for internal circulation only:


5
Level Order Traversal: Write a function to perform level order traversal of a binary tree.
25
Height of a Binary Tree: Write a function to find the height of a binary tree.
26
Diameter of a Binary Tree: Write a function to find the diameter of a binary tree.
27
Check if a Binary Tree is Balanced: Write a function to check if a binary tree is height
28
balanced.
Lowest Common Ancestor: Write a function to find the lowest common ancestor of two
29
nodes in a binary tree.
Implement Graph Using Adjacency List: Write a class to implement a basic graph usingan
30
adjacency list with methods to add vertices and edges.
Breadth-First Search (BFS): Write a function to perform BFS on a graph from a givenstart
31
vertex.
Depth-First Search (DFS): Write a function to perform DFS on a graph from a given start
32
vertex.
Detect Cycle in an Undirected Graph: Write a function to detect if there is a cycle in an
33
undirected graph.
Connected Components in an Undirected Graph: Write a function to find the number of
34
connected components in an undirected graph.
Find MST Using Kruskal’s Algorithm: Write a function to find the Minimum Spanning
35
Tree of a graph using Kruskal’s algorithm.
Find MST Using Prim’s Algorithm: Write a function to find the Minimum Spanning Treeof
36
a graph using Prim’s algorithm.
Fibonacci Sequence: Write a function to compute the nth Fibonacci number using dynamic
37
programming.
Climbing Stairs: Write a function to determine how many distinct ways there are to climb a
38
staircase with n steps if you can climb either 1 or 2 steps at a time.
Min Cost Climbing Stairs: Write a function to determine the minimum cost to reach thetop
39
of a staircase given a list of costs associated with each step.
House Robber: Write a function to determine the maximum amount of money you can rob
40
from a row of houses without robbing two adjacent houses.
Maximum Subarray Sum (Kadane’s Algorithm): Write a function to find the contiguous
41
subarray with the maximum sum.
Activity Selection: Given a set of activities with start and end times, select the maximum
42
number of activities that do not overlap.
Fractional Knapsack Problem: Given weights and values of items and the maximum
capacity of a knapsack, determine the maximum value that can be obtained by including
43
fractions of items.
Huffman Coding: Given a set of characters and their frequencies, construct the HuffmanTree
44
to encode the characters.
Job Sequencing Problem: Given a set of jobs, each with a deadline and profit, maximize
45
the total profit by scheduling the jobs to be done before their deadlines.
Minimum Number of Coins: Given different denominations of coins and an amount, findthe
46
minimum number of coins needed to make up that amount.
N-Queens Problem: Place N queens on an N×N chessboard so that no two queens threaten
47
each other.

: for internal circulation only:


6
Permutations: Generate all possible permutations of a given list of numbers or characters.
48
Subsets: Generate all possible subsets of a given set of numbers.
49

8. COURSE OUTCOMES(COs)
After the completion of the course, the student will be able to:

CO No. Course Outcomes


R1UC503.1 Implement Stack, Queue, and Binary Tree data structures using Array and Linked
Lists.
R1UC503.2 Analyze the time and space complexity of algorithms related to algorithm
paradigms of divide and conquer, dynamic programming, greedy algorithms, and
back tracking.
R1UC503.3 Develop programs for computational problems like shortest path, all pairs shortest
path, N queens’ problem, minimum spanning tree, longest common subsequence,
0/1 knapsack, choosing appropriate algorithmic techniques out of dynamic
programming, greedy algorithms, and backtracking.
R1UC503.4 Develop simple software applications using basic and advanced data structures
with dynamic programming, greedy algorithms, and backtracking.

9. TAXONOMY LEVEL OF THE COURSE OUTCOMES


Mapping of CO with Bloom’s Level.

Remember Understand Apply Analyse Evaluate Create


CO No. KL1 KL 2 KL 3 KL 4 KL 2 KL 6
R1UC 503.1 √
R1UC 503.2 √
R1UC 503.3 √
R1UC 503.4 √ √ √ √

10. COURSE ARTICULATIONMATRIX


TheCoursearticulationmatrixindicatesthecorrelationbetweenCourseOutcomesandProgram
Outcomesandtheirexpectedstrengthofmappinginthreelevels(low,medium,andhigh).
PSO1

PSO2
PO10

PO11

PO12
PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9

COs#/
POs
R1UC 503.1 2 2
R1UC 503.2 2 2 2
R1UC 503.3 2 2 1 2
R1UC 503.4 2 2 2 2 1 1 1 1 2
Note: 1-Low, 2-Medium, 3-High

: for internal circulation only:


7
11. TYPICAL EXAMPLE OF COURSES, CREDIT HOURS AND TEACHING HOURS
Credits Hours Hours of engagement/ 15 weeks/
Week semester
Type of Th Tu Pr Sel To Th Tu Pr Sel To
eor tor act f- tal eor tor act f- tal Remarks
Course Total no.
y ial ica stu y ial ica stu of classes
l dy l dy

45 classes for theory


Integrated &
3 0 1 0 5 3 0 2 0 5 75
Course 30 hours of lab
sessions

SL- Theory/ Practical


No Topic for Delivery Skill Competency
Plan
Definition and significance of The students will CO1, CO2
algorithmic complexity develop a strong
1 Time and space complexity, Lecture foundation in
Big O notation, Omega, and algorithm
Theta notations. analysis,
Analyzing basic algorithms, complexity
2 solve problems on basic time Lecture evaluation, and
complexity analysis. practical coding
Static vs. dynamic arrays. skills. These skills
Find the Maximum and are essential for
3 Lecture solving real-world
Minimum Elements in an
Array. problems
Reverse an Array, Find the efficiently.
4 Kth Smallest/Largest Element Lecture
in an Array

Write a function to find the


maximum and minimum ele-
ments in an array.
5 Practical
Write a function to find the
Kth smallest or largest ele-
ment in an array.

: for internal circulation only:


8
Given an array containing
only 0s, 1s, and 2s, sort the
array in linear time.
6 Practical
Write a function to move all
zeroes in an array to the end
while maintaining the relative
order of other elements.
Implementation of Singly CO1, CO2
7 Lecture
Linked List.
The students will
Implementation of doubly
8 Lecture gain a
linked list.
comprehensive
Implementation of circular
9 Lecture understanding of
linked list.
linked lists, their
Operations on Linked List.
10 Lecture implementations,
Insertion, Deletion, Traversal.
and their
Write a function to reverse a operations. This
singly linked list.
11 Practical knowledge is
Write a function to detect if a crucial for
cycle exists in a linked list. tackling more
Write a function to find the advanced data
middle element of a linked structures and
12
list. algorithms in
Practical
Write a function to merge two computer science.
sorted linked lists into one
sorted linked list.
Implementation of Stack The students will CO1, CO2
13 Lecture
using linked list. gain a
Application of stack, infix, comprehensive
14 Prefix and Postfix Lecture understanding of
Expressions. stacks, recursion,
Infix to postfix expression, and their
15 Evaluation of postfix Lecture applications.
expression These skills are
Principles of recursion, Tail crucial for
16 recursion, problem solving Lecture tackling more
using recursion. advanced data
Write a function to structures and
17 Practical
implement a stack using an
array or list with basic algorithms in
operations: push, pop, peek, computer science
and isEmpty.
Write a function to check if a
string containing parentheses
is balanced.

: for internal circulation only:


9
Write a function to evaluate a
given postfix expression.
18 Write a function to find the Practical
next greater element for each
element in an array.
Fibonacci numbers, a^n (a The students will CO2, CO3
raised to the power n), gain
19 reverse of a string. Lecture understanding of
queue data
structure, hashing,
Implementation and recursion, and
20 operations on Queue using Lecture their applications.
linked list.
21 Priority queue (heap). Lecture
22 Concept of Hashing. Lecture
Write a function to
implement a queue using a
linked list with basic
operations: enqueue,
dequeue, front, and isEmpty.
23 Practical
Write a function to
implement a circular queue
with basic operations:
enqueue, dequeue, front, rear,
and isEmpty.
Write a function to generate
binary numbers from 1 to N
using a queue.
24 Practical
Write a function to
implement a queue using two
stacks. (vice-versa)
Collision resolution The students will CO1, CO3
25 Lecture
Techniques used in Hashing. gain
Linked List Representation of understanding of
26 Lecture
trees, Binary Search Tree. tree data
Tree Traversal algorithms: In- structures,
27 order, Pre-order, and Post- Lecture algorithms, and
order. their applications.
Constructing Binary Tree
28 Lecture
from given Tree Traversal,

: for internal circulation only:


10
Write a class to implement a
basic binary tree with insert,
delete, and traversal
operations.
29 Practical
Write a functions to perform
in-order, pre-order, and post-
order traversal of a binary
tree.
Write a function to find the
diameter of a binary tree.
Write a function to check if a
30 Practical
binary tree is height balanced.
Write a function to find the
height of a binary tree.
Operation of Insertion, CO1, CO3
Deletion, Searching
31 Lecture
Modification of data in
Binary Search
Graph representations:
32
Adjacency Matrices,
Lecture
Adjacency List, Graph
Traversal: Depth First Search
33 Breadth First Search. Lecture
The students will
Detect Cycle in an gain a
Undirected Graph, Connected comprehensive
34 Lecture
components in an Undirected understanding of
Graph. binary search
Write a function to find the trees, graph
lowest common ancestor of theory, and their
two nodes in a binary tree. applications.
These skills are
Write a class to implement a crucial for
basic graph using an tackling more
35 Practical
adjacency list with methods advanced data
to add vertices and edges. structures and
Write a function to perform algorithms in
DFS on a graph from a given computer science.
start vertex.

Write a function to detect if


there is a cycle in an
36 undirected graph. Practical
Write a function to perform
BFS on a graph from a given
start vertex.

: for internal circulation only:


11
Write a function to find the
number of connected
components in an undirected
graph.
Minimum spanning trees, The students will CO2, CO3
37 Lecture
Prims and Kruskal algorithm. gain a
Shortest Path algorithm: comprehensive
38 Lecture
Warshal Algorithm. understanding of
Elements of dynamic advanced
39 programming, longest Lecture algorithms,
common subsequence dynamic
40 Coin change problem. Lecture programming
Write a function to find the techniques, and
Minimum Spanning Tree of a their applications.
graph using Kruskal’s
41 algorithm. Practical
Write a function to find the
Minimum Spanning Tree of a
graph using Prim’s algorithm.
Write a function to compute
the nth Fibonacci number
using dynamic programming.
Write a function to determine
42 Practical
how many distinct ways there
are to climb a staircase with n
steps if you can climb either 1
or 2 steps at a time.
Determine the minimum cost The students will CO1, CO3
to reach the top of a staircase gain a
43 Lecture
given a list of costs associated comprehensive
with each step. understanding of
To find the contiguous dynamic
44 subarray with the maximum Lecture programming,
sum. greedy algorithms,
Elements of the greedy and their
45 Lecture
strategy, Fractional knapsack, applications.
Activity Selection, Huffman
46 Lecture
coding.
Given weights and values of
items and the maximum
capacity of a knapsack,
47 Practical
determine the maximum
value that can be obtained by
including fractions of items.

: for internal circulation only:


12
Given a set of characters and
their frequencies, construct
the Huffman Tree to encode
the characters.
Write a function to determine
the maximum amount of
money you can rob from a
row of houses without
48 robbing two adjacent houses. Practical
Given n ropes with different
lengths, find the minimum
cost to connect all ropes into
one rope.
49 Job sequencing Problem Lecture CO3
Given different
denominations of coins and The students will
50 an amount, find the minimum Lecture gain a
number of coins needed to comprehensive
make up that amount. understanding of
Back Tracking: Sum of optimization
51 Lecture
subset problems,
52 N queens’ problem Lecture backtracking
Place N queens on an N×N algorithms, and
chessboard so that no two their applications.
queens threaten each other These skills are
53 Practical crucial for
Generate all possible
permutations of a given list of tackling complex
numbers or characters. problems in
Generate all possible subsets computer science
of a given set of numbers and software
engineering,
Rat in a maze: Given a maze, particularly in
find a path from the top-left areas requiring
54 Practical combinatorial and
corner (0, 0) to the bottom-
right corner (n-1, n-1). The recursive
rat can move in four problem-solving.
directions: left, right, up, and
down.
Introduction to Probabilistic The students will CO3, CO4
Algorithms, Advantages and be well-equipped
55 Lecture
Trade-offs of Probabilistic to handle
Data Structures. problems that
Applications and Use Cases, require efficient
56 Structure and Function of Lecture space and time
Bloom Filters. management

: for internal circulation only:


13
Hash Functions and Their through
57 Role, False Positives and Lecture probabilistic
Space Efficiency. methods, and they
Variants of Bloom Filters will understand
58 Lecture
(e.g., Counting Bloom Filter). how to apply
59 Lecture these techniques
60 Lecture in real-world
Revision scenarios.
61 Lecture
62 Lecture

12. BIBLIOGRAPHY

⚫ Text Book: Introduction to Algorithms, by Corman


⚫ Reference Books
• Data Structures and Algorithms in Java, Roberto Tamassia and Michael T
Goodrich, John Wiley
• R. Kruse etal, “Data Structures and Program Design in C”, Pearson Education
⚫ Webliography
• https://www.geeksforgeeks.org/advanced-data-structures/
• https://github.com/topics/advanced-data-structures
⚫ SWAYAM/NPTEL/MOOCs Certification
• https://www.coursera.org/specializations/data-structures-algorithms.
• https://www.codespaces.com/best-data-structures-and-algorithms-courses-
classes.html#3-data-structures-and-algorithms-nanodegree-certification-udacity

13. COURSE ASSESSMENT


Assessment forms an integral part of curriculum design. A learning-teaching system can only be
effective if the student’s learning is measured at various stages which means while the student
processes learning (Assessment for Learning) a given content and after completely learning a
defined content (Assessment of Learning). Assessment for learning is referred to as formative
assessment, that is, an assessment designed to inform instruction.
The ability to use and apply the knowledge in different ways may not be the focus of the
assessment. With regard to designing assessments, the faculty members must be willing to put in
the time required to create a valid, reliable assessment, that ideally would allow students to
demonstrate their understanding of the information while remaining. The following are the five
main areas that assessment reporting should cover.
1. Learning Outcomes: At the completion of a program, students are expected to know their
knowledge, skills, and attitude. Depending on whether it is a UG or PG program, the level of
sophistication may be different. There should be no strict rule on the number of outcomes to
be achieved, but the list should be reasonable, and well-organized.

: for internal circulation only:


14
2. Assessable Outcomes: After a given learning activity, the statements should specify what
students can do to demonstrate. Criteria for demonstration are usually addressed in rubrics
and there should be specific examples of work that doesn’t meet expectations, meets
expectations, and exceeds expectations. One of the main challenges is faculty communication
whether all faculty agreed on explicit criteria for assessing each outcome. This can be a
difficult accomplishment when multiple sections of a course are taught or different faculty
members. Hence there is a need for common understanding among the faculty on what is
assessed and how it is assessed.
3. Assessment Alignment: This design of an assessment is sometimes in the form of a
curriculum map, which can be created in something as easy as an Excel spreadsheet. Courses
should be examined to see which program outcomes they support, and if the outcome is
assessed within the course. After completion, program outcomes should be mapped to
multiple courses within the program.
4. Assessment Planning: Faculty members need to have a specific plan in place for
assessing each outcome. Outcomes don’t need to be assessed every year, but faculty should
plan to review the assessment data over a reasonable period of time and develop a course of
action if the outcome is not being met.
5. Student Experience: Students in a program should be fully aware of the expectations of
the program. The program outcomes are aligned on the syllabus so that students are aware of
what course outcomes they are required to meet, and how the program outcomes are
supported. Assessment documents should clearly communicate what is being done with the
data results and how it is contributing to the improvement of the program and curriculum.
Designing quality assessment tools or tasks involves multiple considerations if it is to be fit
for purpose. The set of assessments in a course should be planned to provide students with
the opportunity to learn as they engage with formative tasks as well as the opportunity to
demonstrate their learning through summative tasks. Encouraging the student through the use
of realistic, authentic experiences is an exciting challenge for the course faculty team, who
are responsible for the review and quality enhancements to assessment practices.

14. FORMATIVE AND SUMMATIVE ASSESSMENT


Assessment Pattern for Integrated Course:

Type of course CIE Total Marks


Final Marks
Lab@ MTE Lab CIE SEE CIE*0.5+SEE*0.5
(Work Exam
+
Record)
Comprehensive 25 50 25 100 100 100

@Lab Work-15 marks + Lab Record-10 marks

: for internal circulation only:


15
15. PASSING STANDARDS

Passing Criteria for Different Course Types Effective from AY 2022-23 Onwards

S.No. Course Type Passing Criterion

1. Comprehensive Course (C) A student shall secure a minimum of 30% of the maximum
marks in the semester-end examination (SEE/ETE) and 40% of
aggregate marks in the course Continuous internal examination
(CIE) and SEE/ETE marks i.e., minimum Passing Grade in a
course is “P”.
Note: Students unable to meet the overall passing criteria as mentioned shall be eligible for the
following options to clear the course:
§ Appear in the Back Paper Examinations and have to meet the criteria to score 40% in
marks overall
§ Appear in summer examinations (Internal +External) to meet the criteria as mentioned.

16. PROBLEM-BASED LEARNING/CASE STUDIES/CLINICS

SNo Problem KL
Write a program in Java or Python and find time complexity for 2–Sum K3
1
Problem: Finding two numbers in an array that add up to a given target value.
Write a program in Java or Python and find time complexity for Longest K3
2 Common Subsequence Problem: Finding longest subsequence which is
common in all given input sequences.
Write a program in Java or Python and find time complexity for Maximum K3
3 Subarray Problem: Finding a contiguous subarray with the largest sum, within a
given one-dimensional array A[1...n] of numbers.
Write a program in Java or Python and find time complexity for Coin Change K3
4
Problem: Finding the number of ways to make sum by using different
denominations from an integer array of coins[ ] of size N representing different
types of denominations and an integer sum.
Write a program in Java or Python and find time complexity for 0–1 Knapsack K3
5
Problem: Restrict the number of copies of each kind of item to zero or one.
Write a program in Java or Python and find time complexity for Subset Sum K3
6 Problem: Checking if there is a subset of the given set whose sum is equal to
the given sum.
Write a program in Java or Python and find time complexity for Longest K3
7 Palindromic Subsequence Problem: Finding a maximum-length subsequence of
a given string that is also a Palindrome.
Write a program in Java or Python and find time complexity for Matrix Chain K3
8
Multiplication Problem: Finding the most efficient way to multiply these
matrices together such that the total number of element multiplications is
minimum.

: for internal circulation only:


16
Write a program in Java or Python and find time complexity for Longest K3
Common Substring Problem: A set of strings can be found by building a
9
generalized suffix tree for the strings, and then finding the deepest internal
nodes which have leaf nodes from all the strings in the subtree below it.
Write a program in Java or Python and find time complexity for Rod Cutting K3
Problem: A rod is given of length n. Another table is also provided, which
10 contains different size and price for each size. Determine the maximum price by
cutting the rod and selling them in the market.
Write a program in Java or Python and find time complexity for Word Break K3
Problem: You will be given a string, say "s", and a dictionary of strings say
11 "wordDict". You have to return true if s can be segmented into a space-
separated sequence of one or more dictionary words.
Write a program in Java or Python and find time complexity for Edit Distance K3
Problem: Quantifying how dissimilar two strings (e.g., words) are to one
12 another, that is measured by counting the minimum number of operations
required to transform one string into the other.
Write a program in Java or Python and find time complexity for Chess Knight K3
13 Problem: A knight starting at any square of the board and moving to the
remaining 63 squares without ever jumping to the same square more than once.
Write a program in Java or Python and find time complexity for Partition K3
14 Problem: A given set can be partitioned in such a way, that sum of each subset
is equal.
Write a program in Java or Python and find time complexity for 3–Partition K3
15 Problem: Deciding whether a given multiset of integers can be partitioned into
triplets that all have the same sum.
Write a program in Java or Python and find time complexity for Snake and K3
Ladder Problem: Write a function that returns the minimum number of
16
jumps to take top or destination position. You can assume the dice you
throw results in always favor of you means you can control the dice.
Write a program in Java or Python and find time complexity for Largest K3
17 Consecutive Subarray Problem: Finding out the largest sum of the consecutive
numbers of the array.
Write a program in Java or Python and find time complexity for Dutch National K3
18
Flag Problem: The flag of the Netherlands consists of three colors: white, red,
and blue. The task is to randomly arrange balls of white, red, and blue such that
balls of the same color are placed together.
Write a program in Java or Python and find time complexity for Knight’s Tour K3
19
Problem: a puzzle where a chess knight is placed on an empty chess board and
the goal is to move the knight to every square on the board exactly once without
re-visiting any squares.
Write a program in Java or Python and find time complexity for Maximum Sum K3
20 Submatrix Problem: A 2D array arr[][] of dimension N*M is given, the task is
to find the maximum sum sub-matrix from the matrix arr[][].
Write a program in Java or Python and find time complexity for Longest K3
21 Palindromic Substring Problem: Finding a maximum-length contiguous
substring of a given string that is also a palindrome.

: for internal circulation only:


17
Write a program in Java or Python and find time complexity for Job Sequencing K3
22 Problem: You have a single processor operating system and a set of jobs that
have to be completed with given deadline constraints.
Write a program in Java or Python and find time complexity for N–Queens K3
23 Problem: Placing N chess queens on an N×N chessboard so that no two queens
attack each other.
Write a program in Java or Python and find time complexity for Maximum K3
24
Product Subarray Problem: Find the contiguous subarray within the array which
has the largest product of its elements. You have to report this maximum
product.
Write a program in Java or Python and find time complexity for Longest K3
25
Repeated Subsequence Problem: Find the length of the longest repeating
subsequence in a given string such that the two subsequences don't have the
same original string character at the same position.
Write a program in Java or Python and find time complexity for 3–Sum K3
26
Problem: Given an array and a value, find if there is a triplet in array whose sum
is equal to the given value. If there is such a triplet present in array, then print
the triplet and return true. Else return false.
Write a program in Java or Python and find time complexity for Shortest K3
27
Common Super Sequence Problem: Given two strings X and Y of lengths m
and n respectively, find the length of the smallest string which has both, X and
Y as its sub-sequences.
Write a program in Java or Python and find time complexity for Longest K3
28
Alternating Subarray Problem: Given an array containing positive and negative
elements, find a subarray with alternating positive and negative elements, and in
which the subarray is as long as possible.
Write a program in Java or Python and find time complexity for 4–Sum K3
29
Problem: Given an array nums of n integers and an integer target, are there
elements a, b, c, and d in nums such that a + b + c + d = target we need to find
all unique quadruplets in the array which gives the sum of target.
Write a program in Java or Python and find time complexity for K–Partition K3
30 Problem: Partitioning an array of positive integers into k disjoint subsets that all
have an equal sum, and they completely cover the set.
31 Write a program in Java or Python and find time complexity for Minimum Sum K3
Partition Problem: Given a set of positive integers S, partition set S into two
subsets, S1 and S2, such that the difference between the sum of elements in S1
and S2 is minimized. The solution should return the minimum absolute
difference between the sum of elements of two partitions.
Write a program in Java or Python and find time complexity for Wildcard K3
32
Pattern Matching Problem: We have a string and a pattern then we have to
compare the string with a pattern that whether the pattern matches with a string
or not
Write a program in Java or Python and find time complexity for Maximum K3
33 Overlapping Intervals Problem: Print the maximum number of overlap among
these intervals at any time.
Write a program in Java or Python and find time complexity for Graph Coloring K3
34 Problem: Assigning colors to the vertices such that no two adjacent vertexes
have the same color.
: for internal circulation only:
18
: for internal circulation only:
19
Write a program in Java or Python and find time complexity for Longest K3
35 Increasing Subsequence Problem: Given an array arr[] of size N, the task is to
find the length of the Longest Increasing Subsequence (LIS).
Write a program in Java or Python and find time complexity for Pots of Gold K3
Game Problem: Two players X and Y are playing a game in which there are pots
of gold arranged in a line, each containing some gold coins. They get alternating
turns in which the player can pick a pot from one of the ends of the line. The
36 winner is the player who has a higher number of coins at the end. The objective
is to maximize the number of coins collected by X, assuming Y also plays
optimally. Return the maximum coins X could get while playing the game.
Initially, X starts the game.

Write a program in Java or Python and find time complexity for Activity K3
37 Selection Problem: Selection of non-conflicting activities that needs to be
executed by a single person or machine in a given time frame.
Write a program in Java or Python and find time complexity for Longest K3
38
Alternating Subsequence Problem:One wants to find a subsequence of a given
sequence in which the elements are in alternating order, and in which the
sequence is as long as possible.
Write a program in Java or Python and find time complexity for Longest K3
Consecutive Subsequence Problem: First sort the array and find the longest
39 subarray with consecutive elements. After sorting the array and removing the
multiple occurrences of elements, run a loop and keep a count and max (both
initially zero).
Write a program in Java or Python and find time complexity for Weighted K3
40 Interval Scheduling Problem: A value is assigned to each executed task and the
goal is to maximize the total value. The solution need not be unique.
Write a program in Java or Python and find time complexity for Longest K3
41
Bitonic Subarray Problem: Find a subarray of a given sequence in which the
subarray’s elements are first sorted in increasing order, then in decreasing order,
and the subarray is as long as possible.
42 Write a program in Java or Python and find time complexity for Water Jugs K3
Problem: You are given two jugs, a 4-gallon one and a 3-gallon one, a pump
which has unlimited water which you can use to fill the jug, and the ground on
which water may be poured. Neither jug has any measuring markings on it.
How can you get exactly 2 gallons of water in the 4-gallon jug?
Write a program in Java or Python and find time complexity for Hat Check K3
43 Problem: Given a positive number n, find the total number of ways in which n
hats can be returned to n people such that no hat makes it back to its owner.
Write a program in Java or Python and find time complexity for Merging K3
44 Overlapping Intervals: Start from the first interval and compare it with all other
intervals for overlapping.
Write a program in Java or Python and find time complexity for Longest K3
45 Common Prefix (LCP) Problem: An array of strings is the common prefix
between 2 most dissimilar strings.

: for internal circulation only:


20
17. SELF-LEARNING THROUGH MOOCs (Cognitive Skills): Certifications

1. "Algorithms Specialization" by Stanford University on Coursera: This specialization


covers multiple courses on algorithms and data structures, including "Divide and Conquer,
Sorting, and Searching" and "Graph Search, Shortest Paths, and Data Structures."
2. "Data Structures and Algorithms" by University of California San Diego & National
Research University Higher School of Economics on Coursera: This course covers
essential data structures and algorithms, and the programming assignments are often in
C++.
3. "Data Structures and Algorithms - The Complete Masterclass" on Udemy: This
course covers a wide range of data structures and algorithms topics using C++ and
includes coding exercises.
4. "Mastering Data Structures & Algorithms using C and C++" on Udemy: Another
comprehensive course that covers data structures and algorithms with a focus on C and
C++ programming languages.
5. "Data Structures and Algorithms in C++" by Coding Blocks on YouTube: This is a
free YouTube series that covers data structures and algorithms in C++.

Course Lead Programme Chair Dean (SCSE)

: for internal circulation only:


21

You might also like