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

Final Adsa Coursepack 2024-25

Uploaded by

jp9608yadav
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)
22 views21 pages

Final Adsa Coursepack 2024-25

Uploaded by

jp9608yadav
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

FRAMEWORK

The Course Pack is a comprehensive and complete pedagogical guideline document that describes the
components of instruction delivery by a faculty member. It consists of the scheme of the course, Course
Overview, Course Objectives, Prerequisite course, Program-specific Outcomes (PSOs), Course outcomes
(COs), Bloom’s taxonomy (Knowledge Levels), Types of Courses, Course articulation matrix, Course
assessment patterns, Course content, Lesson Plan, Bibliography, Problem-based learning/case-
studies/clinical, and Student-Centered learning (self-learning towards life-long-learning). It not only
provides a uniform design of Course delivery across the University but also ensures freedom and
flexibility to introduce innovations in learning and teaching and create vivid kinds of assessment tools
(alternate assessment tools) by a faculty member.
The course pack is developed by the faculty member teaching a course. If more than one faculty teaches
the same course, all the faculty members teaching the course shall be formed as a cluster, and a senior
faculty member (Course-lead) lead the Course delivery design in a team effort. The Course Pack provides
ample scope and opportunity to bring innovations in teaching pedagogies in a school/department.
Hence, the Course pack is a comprehensive learning-teaching strategy framework to be followed by all
the faculty members in schools/departments in the university. It is not only a tool for measuring the
learning of a class but also analyses the achievement levels (learning outcomes of the course) of all the
students in a class in a continuous manner.

: for internal circulation only : 2


COURSEPACK (Fall 2024-25)
1. SCHEME
Theschemeis an overviewofwork-integratedlearning opportunities and gets studentsout into the real
world. This will show what a courseentails.

Course Advanced Data Structures and Course Type Blended


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

: for internal circulation only:


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

PREREQUISITE COURSE YES


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

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

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

: for internal circulation only:


4
6. BLOOM’S LEVEL OF THE COURSE OUTCOMES

Bloom'staxonomyisasetofhierarchicalmodelsusedfortheclassificationofeducationallearning
objectivesintolevelsofcomplexityandspecificity.Thelearningdomainsarecognitive,affective,and
psychomotor.
7. BLENDED

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

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 the
professional 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 for
sustainable development.

PO8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities and

: for internal circulation only:


5
norms of computing science practice.

PO9 Individual and teamwork: Function effectively as an individual, and as a member or leader
in 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 member
and 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.

9. 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 Industry
4.0.

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

10. COURSE ARTICULATIONMATRIX

The Coursearticulationmatrixindicatesthecorrelationbetween Course Outcomesand Program


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:


6
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)
Blended 25 50 25 100 100 100

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

12. COURSE CONTENT

THEORY+ PRACTICAL

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.

: for internal circulation only:


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

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

: for internal circulation only:


8
Implement a Stack Using Linked List: Write a function to implement a stack using a
12
linked 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.
14 Evaluate Postfix Expression: Write a function to evaluate a given postfix expression.
Next Greater Element: Write a function to find the next greater element for each element
15
in 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 from
19
1 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,
21
delete, and traversal operations.
22 Inorder Traversal: Write a function to perform inorder traversal of a binary tree.
23 Preorder Traversal: Write a function to perform preorder traversal of a binary tree.
24 Postorder Traversal: Write a function to perform postorder traversal of a binary tree.
25 Level Order Traversal: Write a function to perform level order traversal of a binary tree.
26 Height of a Binary Tree: Write a function to find the height of a binary tree.
27 Diameter of a Binary Tree: Write a function to find the diameter of a binary tree.
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 using
30
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
31
start 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 Tree
36
of a graph using Prim’s algorithm.
Fibonacci Sequence: Write a function to compute the nth Fibonacci number using dynamic
37
programming.
38 Climbing Stairs: Write a function to determine how many distinct ways there are to climb a

: for internal circulation only:


9
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 the
39
top 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
43 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
44
Tree 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, find
46
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
47
each other.
48 Permutations: Generate all possible permutations of a given list of numbers or characters.
49 Subsets: Generate all possible subsets of a given set of numbers.

14. LESSON PLAN BLENDED COURSES


FOR THEORY 12 weeks * 4 Hours = 48 Classes) (1credit = 1Lecture Hour)
FOR PRACTICAL 12 weeks * 2Hours = 24 Hours lab sessions (1 credit = 2 lab hours)

SL- Theory/ Practical


Topic for Delivery Skill Competency
No 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

: for internal circulation only:


10
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.
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
list. algorithms in
12 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

: for internal circulation only:


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


12
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:
Adjacency Matrices,
32 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:


13
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:


14
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:


15
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

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

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

: for internal circulation only:


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

: for internal circulation only:


17
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
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
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.
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
27
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
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.
31 Write a program in Java or Python and find time complexity for Minimum Sum K3

: for internal circulation only:


18
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
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.
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.
42 Write a program in Java or Python and find time complexity for Water Jugs K3

: for internal circulation only:


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

17. STUDENT-CENTEREDLEARNING (SELF-LEARNING TOWARDS LIFE-LONG-


LEARNING)

Self-Learning (it’s a typical course-based project tobecarried out by a wholeclassingroups offour


students each; they should exhibit higher level KLs)

Thestudents,inagroup, areexpectedtoconceiveanidea basedonthecontent(objectives/outcomes) and


applysuitable knowledge to demonstrate their learning.

18. SELF-LEARNINGTHROUGHMOOCs(Cognitive Skills): Certification

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:


20

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy