0% found this document useful (0 votes)
15 views18 pages

Course Pack Advanced Data Structures and Algorithms

The document outlines the course structure for 'Advanced Data Structures and Algorithms' for B. Tech. (CSE) V Sem, detailing course objectives, outcomes, and assessment methods. It covers advanced topics in data structures and algorithms, including dynamic programming, greedy algorithms, and backtracking, along with practical lab work. Additionally, it specifies prerequisites, course instructors, and the correlation between course outcomes and program outcomes.
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)
15 views18 pages

Course Pack Advanced Data Structures and Algorithms

The document outlines the course structure for 'Advanced Data Structures and Algorithms' for B. Tech. (CSE) V Sem, detailing course objectives, outcomes, and assessment methods. It covers advanced topics in data structures and algorithms, including dynamic programming, greedy algorithms, and backtracking, along with practical lab work. Additionally, it specifies prerequisites, course instructors, and the correlation between course outcomes and program outcomes.
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/ 18

COURSEPACK (Fall 2025-26)

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 Blended


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

Practical
Practical
Tutorial
0 0

Theory
delivery

study
Self-

SEE
Practical

CIE
0 2
Self-study 0 0
Total 3 5 40 0 40 50% 50%
Course Dr. Anupam Kumar Course Dr. Manoj Tyagi
Lead Sharma Coordinator
Names Theory Practical
Course Dr. Anupam Kumar Sharm Dr. Anupam Kumar Sharma
Instructors Dr. Manoj Kumar Tyagi Dr. Manoj Kumar Tyagi
Mr. Abhishek Kumar Agrahari Dr. Aanjey Mani Tripathi
Mr. Albert Mundu Mr. Abhishek Kumar Agrahari
Mr. Anurag Maurya Mr. Albert Mundu
Mr. DILEEP KUMAR KUSHWAHA Dr. ALOK KATIYAR
Mr. Gaurav Kumar Ms. Anita Thakur
Mr. Jitendra Mr. Ankit Sharma
Mr. K RAJKANNAN Mr. Anurag Maurya
Mr. Mithlesh Kumar Yadav Ms. APOORVA DWIVEDI
Dr. Nripendra Dwivedi Mr. Ashish Shrivastava
Mr. Rahul Kumar Dr. Avaneesh Kumar Yadav
Dr. Shweta Ms. Chandramala Amarji
Mr. Ravindra Singh Koranga Mr. DILEEP KUMAR KUSHWAHA
Dr. Sahil Kansal Dr. Dr Harshvardhan Choudhary
Mr. Ram Pal Singh Mr. Gaurav kumar
Dr. Sunil Kumar Mr. Hariprasath K
Dr. Triveni Lal Pal Mr. Jitendra
Mr. Tushar Mehrotra Ms. Jyoti
Mr. Vinod Kumar Ms. Jyoti Yaduwanshi
Ms. Priyanka Shukla Mr. K RAJKANNAN
Mr. Kishan Kumar
Dr. Mandeep Kumar
Mr. Mithlesh Kumar Yadav
Dr. Nripendra Dwivedi

: for internal circulation only:


Mr. R Radhakrishnan
Mr. RAHUL KUMAR
Mr. Rahul Kumar
Mr. Rahul Kumar
Ms. Rakshita Mall
Dr. Shweta
Mr. Ranjan Singh
Mr. Ravindra Singh Koranga
Mr. Rishav Raj
Mr. Sachin Kumar tyagi
Dr. Sahil Kansal
Mr. SALMAN KHURSHEED AHMAD
Mr. Satyam Singh
Dr. Savita Kumari
Mr. SHASHIKANT SHARMA
Dr. SHIKSHA SINGH
Ms. Shivangi Singh
Mr. Ram Pal Singh
Mr. Ram Pal Singh
Mr. SIVAKUMAR MADESHWARAN
Dr. P. sudhakar
Dr. Sunil Kumar
Mr. Sunil Kumar Chowdhary
Dr. Triveni Lal Pal
Mr. Tushar Mehrotra
Mr. V.JANAKIRAMAN
Mr. Vikas Kumar
Mr. VINAY DWIVEDI
Mr. Vinod Kumar
Mr. Tarachand

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

PREREQUISITE COURSE YES


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

: for internal circulation only:


4. COURSE OBJECTIVE
This course aims to familiarize students with algorithmic design techniques of dynamic
programming, greedy programming, and backtracking. They will be taught to compute time and
space complexities of algorithms and also implement them.

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

CO No. Course Outcomes


R1UC531.1 Implement Stack, Queue, and Binary Tree data structures using Array and Linked
Lists.
R1UC531.2 Analyze the time and space complexity of algorithms related to algorithm
paradigms of divide and conquer, dynamic programming, greedy algorithms, and
back tracking.
R1UC531.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.
R1UC531.4 Develop simple software applications using basic and advanced data structures
with dynamic programming, greedy algorithms, and backtracking.

6. BLOOM’S LEVEL OF THE COURSE OUTCOMES

Bloom's taxonomy is a set of hierarchical models used for the classification of educational learning
objectives into levels of complexity and specificity. The learning domains are cognitive, affective, and
psychomotor.

7. COMPREHENSIVE

Remember Understand Apply Analyse Evaluate Create


CO No.
KL1 KL 2 KL 3 KL 4 KL 2 KL 6
R1UC531.1 √
R1UC531.2 √
R1UC531.3 √
R1UC531.4 √ √ √ √

: for internal circulation only:


8. PROGRAM OUTCOMES (POs):
PO
Description of the Program Outcome
No.
Engineering Knowledge: Apply knowledge of mathematics, natural science, computing, en-
PO1 gineering fundamentals and an engineering specialization as specified in WK1 to WK4 re-
spectively to develop to the solution of complex engineering problems.
Problem Analysis: Identify, formulate, review research literature and analyse complex engi-
PO2 neering problems reaching substantiated conclusions with consideration for sustainable de-
velopment. (WK1 to WK4).
Design/Development of Solutions: Design creative solutions for complex engineering prob-
lems and design/develop systems/components/processes to meet identified needs with con-
PO3
sideration for the public health and safety, whole-life cost, net zero carbon, culture, society
and environment as required. (WK5).
Conduct Investigations of Complex Problems: Conduct investigations of complex engineer-
PO4 ing problems using research-based knowledge including design of experiments, modelling,
analysis & interpretation of data to provide valid conclusions. (WK8).
Modern Tool Usage: Create, select and apply appropriate techniques, resources and modern
PO5 engineering & IT tools, including prediction and modelling recognizing their limitations to
solve complex engineering problems. (WK2 and WK6).
The Engineer and The World: Analyze and evaluate societal and environmental aspects
while solving complex engineering problems for its impact on sustainability with reference
PO6 to economy, health, safety, legal framework, culture and environment. (WK1, WK5, and
WK7).
Ethics: Apply ethical principles and commit to professional ethics, human values, diversity
PO7 and inclusion; adhere to national & international laws. (WK9).
Individual and Collaborative Team work: Function effectively as an individual, and as a
PO8 member or leader in diverse/multi-disciplinary teams.
Communication: Communicate effectively and inclusively within the engineering commu-
nity and society at large, such as being able to comprehend and write effective reports and
PO9 design documentation, make effective presentations considering cultural, language, and
learning differences.
Project Management and Finance: Apply knowledge and understanding of engineering man-
agement principles and economic decision-making and apply these to one’s own work, as a
PO10 member and leader in a team, and to manage projects and in multidisciplinary environ-
ments..
Life-Long Learning: Recognize the need for, and have the preparation and ability for:
PO11 i) independent and life-long learning ii) adaptability to new and emerging technologies and
iii) critical thinking in the broadest context of technological change. (WK8).

9. PROGRAMME SPECIFIC OUTCOME (PSO):

The students of Computer Science and Engineering shall:

: for internal circulation only:


PSO1: Have the ability to work with emerging technologies in computing requisite to Industry
4.0.

PSO2: Demonstrate Engineering Practice learned through industry internship and research
project tosolve live problems in various domains.

10. COURSE ARTICULATIONMATRIX

The Course articulation matrix indicates the correlation between Course Outcomes and Program
Outcomes and their expected strength of mapping in three levels (low, medium, and high).

PSO1

PSO2
PO10

PO11

PO12
PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9
COs#/
POs
R1UC531.1 2 2
R1UC531.2 2 2 2
R1UC531.3 2 2 1 2
R1UC531.4 2 2 2 2 1 1 1 2
Note: 1-Low, 2-Medium, 3-High

11. COURSE ASSESSMENT


The course assessment patterns are the assessment tools used both in formative and summative
examinations.

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:


COURSE CONTENT

Contents

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

: for internal circulation only:


Bloom Filters, Hash Functions and Their Role, False Positives and Space Efficiency, Variants of
Bloom Filters (e.g., Counting Bloom Filter).

Lab (To be implemented in C/C++/ Java/Python)

S.
Description
No.
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.
Implementation of Singly Linked List. Operations on Linked List. Insertion, Deletion,
4
Traversal.
Implementation of doubly linked list. Operations on Linked List. Insertion, Deletion,
5
Traversal.
Implementation of circular linked list. Operations on Linked List. Insertion, Deletion,
6
Traversal.
Implement a Queue Using Arrays/Lists: Write a function to implement a queue using an
7
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
8
linked list with basic operations: enqueue, dequeue, front, and isEmpty.
Implement a Queue Using Stacks: Write a function to implement a queue using two
9
stacks. (vice-versa)
Implement a Binary Tree: Write a class to implement a basic binary tree with insert,
10
delete, and traversal operations.
11 Inorder Traversal: Write a function to perform inorder traversal of a binary tree.
12 Preorder Traversal: Write a function to perform preorder traversal of a binary tree.
13 Postorder Traversal: Write a function to perform postorder traversal of a binary tree.
14 Level Order Traversal: Write a function to perform level order traversal of a binary tree.
Implement Graph Using Adjacency List: Write a class to implement a basic graph using
15
an adjacency list with methods to add vertices and edges.
Breadth-First Search (BFS): Write a function to perform BFS on a graph from a given
16
start vertex.
Depth-First Search (DFS): Write a function to perform DFS on a graph from a given start
17
vertex.
Detect Cycle in an Undirected Graph: Write a function to detect if there is a cycle in an
18
undirected graph.
Connected Components in an Undirected Graph: Write a function to find the number of
19
connected components in an undirected graph.
Find MST Using Kruskal’s Algorithm: Write a function to find the Minimum Spanning
20
Tree of a graph using Kruskal’s algorithm.
Find MST Using Prim’s Algorithm: Write a function to find the Minimum Spanning Tree
21
of a graph using Prim’s algorithm.

: for internal circulation only:


Activity Selection: Given a set of activities with start and end times, select the maximum
22
number of activities that do not overlap.
Fractional Knapsack Problem: Given weights and values of items and the maximum
23 capacity of a knapsack, determine the maximum value that can be obtained by including
fractions of items.
Huffman Coding: Given a set of characters and their frequencies, construct the Huffman
24
Tree to encode the characters.
Job Sequencing Problem: Given a set of jobs, each with a deadline and profit, maximize
25
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, find
26
the 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
27
each other.
28 Subsets: Generate all possible subsets of a given set of numbers.

LESSON PLAN FOR BLENDED COURSES


FOR THEORY 13 weeks * 3 Hours = 39 Classes) (1credit = 1Lecture Hour)
FOR PRACTICAL 13 weeks * 2Hours = 26 Hours lab sessions

SL- Theory/ Practical


Topic for Delivery Skill Competency
No Plan
Definition and significance The students will CO1, CO2
of algorithmic complexity. develop a strong
1 Time and space complexity, Lecture foundation in
Big O notation, Omega, and algorithm analysis,
Theta notations. complexity
Analyzing basic algorithms, evaluation, and
2 solve problems on basic Lecture practical coding
time complexity analysis. skills. These skills
Static vs. dynamic arrays. are essential for
Find the Maximum and solving real-world
3 Lecture problems
Minimum Elements in an
Array. efficiently.
Write a program to find the
Maximum and Minimum
Elements in an Array: Write
4 Practical
a function to find the
maximum and minimum
elements in an array.
Write a program to reverse
an Array: Write a function
5 Practical
to reverse an array in
place.
Reverse an Array, Find the
6 Kth Smallest/Largest Lecture
Element in an Array
Implementation of Singly Lecture
7
Linked List.

: for internal circulation only:


Implementation of doubly Lecture
8
linked list.
Write a program to find the
Kth Smallest/Largest
Element in an Array: Write
9 Practical
a function to find the Kth
smallest or largest element
in an array.
Write a program to
implementation of Singly
10 Linked List. Operations on Practical
Linked List. Insertion,
Deletion, Traversal.
Implementation of circular CO1, CO2
11 Lecture
linked list.
Operations on Linked List.
12 Insertion, Deletion, Lecture
Traversal. The students will
gain a
Implementation of Stack
13 Lecture comprehensive
using linked list.
understanding of
Implementation of doubly
linked lists, their
linked list. Operations on
14 Practical implementations,
Linked List. Insertion,
and their
Deletion, Traversal.
operations. This
Implementation of circular
knowledge is
linked list. Operations on
15 Practical crucial for tackling
Linked List. Insertion,
more advanced
Deletion, Traversal.
data structures and
Application of stack, infix, algorithms in
16 Prefix and Postfix Lecture computer science.
Expressions.
Infix to postfix expression,
17 Evaluation of postfix Lecture
expression
Principles of recursion, Tail The students will CO1, CO2
18 recursion, problem solving Lecture gain a
using recursion. comprehensive
Implement a Queue Using Practical understanding of
Arrays/Lists: Write a stacks, recursion,
function to implement a and their
19 queue using an array or list applications. These
with basic operations: skills are crucial
enqueue, dequeue, front, for tackling more
and isEmpty. advanced data
Implement a Queue Using Practical structures and
Linked List: Write a algorithms in
function to implement a computer science
20 queue using a linked list
with basic operations:
enqueue, dequeue, front,
and isEmpty.

: for internal circulation only:


Fibonacci numbers, a^n (a
21 raised to the power n), Lecture
reverse of a string.
Implementation and Lecture
22 operations on Queue using
linked list.
Implementation of priority Lecture
23
queue (heap).
Implement a Queue Using
Stacks: Write a function to
24 Practical
implement a queue using
two stacks. (vice-versa)
Implement a Binary Tree:
Write a class to implement
25 a basic binary tree with Practical
insert, delete, and traversal
operations.
26 Concept of Hashing. Lecture The students will CO2, CO3
Collision resolution gain understanding
27 Lecture of queue data
Techniques used in Hashing.
Linked List Representation structure, hashing,
28 of trees, Binary Search Lecture recursion, and
Tree. their applications.
Inorder Traversal: Write a
29 function to perform inorder Practical
traversal of a binary tree.
Preorder Traversal: Write a
function to perform
30 Practical
preorder traversal of a
binary tree.
Constructing Binary Tree
31 Lecture
from given Tree Traversal,
Operation of Insertion,
Deletion, Searching
32 Lecture
Modification of data in
Binary Search
Graph representations:
Adjacency Matrices,
33 Adjacency List, Graph Lecture
Traversal: Depth First
Search
Postorder Traversal: Write a Practical The students will CO1, CO3
function to perform gain understanding
34
postorder traversal of a of tree data
binary tree. structures,
Level Order Traversal: Practical algorithms, and
Write a function to perform their applications.
35
level order traversal of a
binary tree.
36 Breadth First Search. Lecture

: for internal circulation only:


Detect Cycle in an Undirected
Graph, Connected
37 Lecture
components in an Undirected
Graph.
Minimum spanning trees,
38 Prims and Kruskal Lecture
algorithm.
Implement Graph Using
Adjacency List: Write a
class to implement a basic
39 Practical
graph using an adjacency
list with methods to add
vertices and edges.
Breadth-First Search (BFS):
Write a function to perform
40 Practical
BFS on a graph from a given
start vertex.
Shortest Path algorithm:
41 Lecture
Warshal Algorithm.
Elements of dynamic CO1, CO3
42 programming, longest Lecture
common subsequence
43 Coin change problem. Lecture
Depth-First Search (DFS): Practical
Write a function to perform
44
DFS on a graph from a given
start vertex.
Detect Cycle in an Practical
The students will
Undirected Graph: Write a
gain a
45 function to detect if there
comprehensive
is a cycle in an undirected
understanding of
graph.
binary search
Determine the minimum
trees, graph
cost to reach the top of a
theory, and their
46 staircase given a list of Lecture
applications. These
costs associated with each
skills are crucial
step.
for tackling more
To find the contiguous
advanced data
47 subarray with the maximum Lecture
structures and
sum.
algorithms in
Elements of the greedy computer science.
48 strategy, Fractional Lecture
knapsack,
Connected Components in
an Undirected Graph: Write
a function to find the
49 Practical
number of connected
components in an
undirected graph.
50 Find MST Using Kruskal’s Practical

: for internal circulation only:


Algorithm: Write a function
to find the Minimum
Spanning Tree of a graph
using Kruskal’s algorithm.
Activity Selection, Huffman The students will CO2, CO3
51 Lecture
coding. gain a
52 Job sequencing Problem Lecture comprehensive
Given different understanding of
denominations of coins and advanced
an amount, find the algorithms,
53 Lecture dynamic
minimum number of coins
programming
needed to make up that
techniques, and
amount.
their applications.
Find MST Using Prim’s
Algorithm: Write a function
54 to find the Minimum Practical
Spanning Tree of a graph
using Prim’s algorithm.
Activity Selection: Given a
set of activities with start
and end times, select the
55 Practical
maximum number of
activities that do not
overlap.
Back Tracking: Sum of Lecture
56
subset
57 N queens’ problem Lecture
Introduction to Probabilistic Lecture
Algorithms, Advantages and
58
Trade-offs of Probabilistic
Data Structures.
Fractional Knapsack Practical The students will CO1, CO3
Problem: Given weights and gain a
values of items and the comprehensive
maximum capacity of a understanding of
59
knapsack, determine the dynamic
maximum value that can be programming,
obtained by including greedy algorithms,
fractions of items. and their
Huffman Coding: Given a Practical applications.
set of characters and their
60 frequencies, construct the
Huffman Tree to encode
the characters.
Applications and Use Cases,
61 Structure and Function of Lecture
Bloom Filters.
Hash Functions and Their
62 Role, False Positives and Lecture
Space Efficiency.

: for internal circulation only:


Variants of Bloom Filters
63 (e.g., Counting Bloom Lecture
Filter).
Job Sequencing Problem:
Given a set of jobs, each
with a deadline and profit,
maximize the total profit by
scheduling the jobs to be
64 done before their Practical
deadlines. N-Queens
Problem: Place N queens on
an N×N chessboard so that
no two queens threaten
each other.
Minimum Number of Coins:
Given different
denominations of coins and
an amount, find the
65 minimum number of coins Practical
needed to make up that
amount. Subsets: Generate
all possible subsets of a
given set of numbers.

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

: for internal circulation only:


PRACTICE PROBLEMS

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
Problem: Finding the number of ways to make sum by using different
4
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
Multiplication Problem: Finding the most efficient way to multiply these
8
matrices together such that the total number of element multiplications is
minimum.
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.

: for internal circulation only:


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
Flag Problem: The flag of the Netherlands consists of three colors: white, red,
18
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
Problem: a puzzle where a chess knight is placed on an empty chess board and
19
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.
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
Product Subarray Problem: Find the contiguous subarray within the array which
24
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
Repeated Subsequence Problem: Find the length of the longest repeating
25
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
Problem: Given an array and a value, find if there is a triplet in array whose sum
26
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.
27
Write a program in Java or Python and find time complexity for Shortest K3
Common Super Sequence Problem: Given two strings X and Y of lengths m

: for internal circulation only:


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
Alternating Subarray Problem: Given an array containing positive and negative
28
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
Problem: Given an array nums of n integers and an integer target, are there
29
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.
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
31 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
Pattern Matching Problem: We have a string and a pattern then we have to
32
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.
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
Alternating Subsequence Problem:One wants to find a subsequence of a given
38
sequence in which the elements are in alternating order, and in which the
sequence is as long as possible.

: for internal circulation only:


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
Bitonic Subarray Problem: Find a subarray of a given sequence in which the
41
subarray’s elements are first sorted in increasing order, then in decreasing order,
and the subarray is as long as possible.
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
42 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.

STUDENT-CENTERED LEARNING (SELF-LEARNING TOWARDS LIFE-LONG-


LEARNING)

Self-Learning (it’s a typical course-based project to be carried out by a whole class in groups of four
students each; they should exhibit higher level KLs)

The students, in a group, are expected to conceive an idea based on the content (objectives/outcomes) and
apply suitable knowledge to demonstrate their learning.

: for internal circulation only:


1. SELF-LEARNING THROUGH MOOCs (Cognitive Skills): Certification

2. "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."
3. "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++.
4. "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.
5. "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.
6. "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:

You might also like