Final Adsa Coursepack 2024-25
Final Adsa Coursepack 2024-25
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.
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
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
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:
Bloom'staxonomyisasetofhierarchicalmodelsusedfortheclassificationofeducationallearning
objectivesintolevelsofcomplexityandspecificity.Thelearningdomainsarecognitive,affective,and
psychomotor.
7. BLENDED
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.
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
PO9 Individual and teamwork: Function effectively as an individual, and as a member or leader
in diverse teams, and in multidisciplinary settings.
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.
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.
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
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).
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.
Minimum Cost Spanning Trees: Prims and Kruskal algorithm. Shortest Path algorithm:
Warshal Algorithm.
Greedy Algorithms: Elements of the greedy strategy, Fractional knapsack, Activity Selection,
Huffman coding, job sequencing Problem.
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.
15. BIBLIOGRAPHY
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 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