Final Course Pack ADA (R1UC404B)
Final Course Pack ADA (R1UC404B)
SCHEME
The scheme is an overview of work-integrated learning opportunities and gets students out into the real
world. This will give what a course entails.
Practical
Tutorial
Theory
Learning
Instruction
Self-
delivery
CIE
SE
Practical 2 4
E
Self-Learning 0 0
Total 5 8 45 0 30 0 50% 50%
Course Lead: Dr. Ashok Kumar Yadav
Names Course Coordinator: Dr. Mili Dhar
Coordinators Theory Practical
and • Abhishek Kumar Pandey • Abhishek Kumar Pandey
Instructors • Albert Mundu • Albert Mundu
• Anurag Maurya • Anurag Maurya
• Ashok Kumar Yadav • Ashok Kumar Yadav
(GUSCSE202332838) (GUSCSE202332838)
• Baldivya Mitra • Baldivya Mitra
• Harshit Jain • Harshit Jain
• Mandeep (GUSCSE202332639) • Mandeep
• Mili Dhar (GUSCSE202332639)
• Mithilesh Kumar Yadav • Mili Dhar
• Neha Singh (GUSCSE202332663) • Mithilesh Kumar Yadav
• Nitin Jain • Neha Singh
• Pardeep Singh (GUSCSE202332663)
• Pooja • Nitin Jain
• Poonam Verma • Pardeep Singh
• Pradeep Chauhan • Pooja
• Pravin Kumar • Poonam Verma
• Radha Rani • Pradeep Chauhan
• Sachin Kumar Tyagi • Pravin Kumar
• Sayooj Devadas K • Radha Rani
• Shachi Mall • Sachin Kumar Tyagi
• Shalaka Tyagi • Sayooj Devadas K
• Sunil Kumar (31672) • Shachi Mall
COURSEPACK |
• Tushar Mehrotra • Shalaka Tyagi
• Vartika Mishra • Sunil Kumar (31672)
• Vikas Arya • Tushar Mehrotra
• Vartika Mishra
• Vikas Arya
COURSE OVERVIEW
An Algorithm is a sequence of steps to solve a problem. Design and Analysis of Algorithm is very important for
designing algorithm to solve different types of problems in the branch of computer science and information technology.
This tutorial introduces the fundamental concepts of Designing Strategies, Complexity analysis of Algorithms,
followed by problems on Graph Theory and Sorting methods. This tutorial also includes the basic concepts on
Complexity theory.
PREREQUISITE COURSE
COURSE OBJECTIVES
• Analyze and design different searching and sorting algorithm algorithms based upon different designing
approaches.
• Analyze and design different tree algorithms based upon different designing approaches.
• Design efficient algorithmic techniques for solving industry oriented real time problems using Greedy Algorithm.
• Design efficient algorithmic techniques for solving industry oriented real time problems using Dynamic Programming.
• Apply and synthesize efficient algorithms.
COURSEPACK |
COURSE OUTCOMES(COs)
C02 Able to apply the concepts of brute force and divide and conquer techniques in
problem solving,
C03 Apply and understand the mathematical criterion for deciding whether an algorithm
is efficient, and know many practically important problems that do not admit any
efficient algorithms.
C04 Analyze and apply classical sorting, searching, optimization and graph algorithms.
C05 Apply and understand basic techniques for designing algorithms, including the
techniques of recursion, dynamic programming, and greedy.
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.
COMPREHENSIVE
Remember Understand Apply Analyse Evaluate Create
CO No. KL1 KL2 KL3 KL4 KL5 KL6
C01 √
C02 √
C03 √
C04 √
C05 √
COURSEPACK |
PROGRAM OUTCOMES (POs): 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 the 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 norms of
the computing science practice.
PO9 Individual and team work: 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.
COURSEPACK |
Program Specific Outcomes (PSO’s)
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 to
solve live problems in various domains.
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
COs#/
PO10
PO11
PO12
PO1
PO2
PO3
PO4
PO5
PO6
PO7
PO8
PO9
POs
404B.1 3 3 3 2 2
404B.2 3 2 2 2 2
2
404B.3 3 2 2 2 2
404B.4 3 2 2 2 2
404B.5 3 3 3 3 3 2 2
COURSE ASSESSMENT
The course assessment patterns are the assessment tools used both in formative and summative examinations.
COURSEPACK |
COURSE CONTENT
THEORY
Content
Introduction
Notion of an Algorithm, Fundamentals of Algorithmic Problem Solving, Problem Types, Analysis of
Algorithm Efficiency, Asymptotic Notations and their properties, Analysis Framework, Empirical Analysis,
Mathematical analysis for Recursive and Non-recursive algorithms, Solving Recurrence relations.
COURSEPACK |
PRACTICAL
Contents
1 Write a program to sort given set of numbers in ascending/descending order using Bubble sort and also
search a number using binary search.
2 Write a program to sort given set of numbers in ascending/descending order using Insertion sort and also
search a number using linear search.
3 Write a program to sort given set of numbers in ascending/descending order using Quick sort and any
other sorting algorithm. Also record the time taken by these two programs and compare them.
COURSEPACK |
LESSON PLAN FOR THEORY COURSES (15 weeks * 3 Hours = 45 Classes)
COURSEPACK |
L WAP to implement Huffman Trees and Codes
70
T Revision and doubt-clearing session
71
T Revision and doubt-clearing session
72
T Revision and doubt-clearing session
73
L Write a program to implement Dijkstra’s
Algorithm.
74
L Write a program to implement Greedy algorithm
using Task Scheduling Problem
75
T= Theory, L= Lab
BIBLIOGRAPHY
Text Book
1. Thomas H. Coreman, Charles E. Leiserson and Ronald L. Rivest, “Introduction to Algorithms”, The MIT
Press, 3rd edition, 2009.
Reference Books
1. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran. Fundamentals of Computer Algorithms, MIT Press,
Second Edition (Indian reprint: Prentice-Hall), 2008.
2. Aho, Hopcraft, Ullman, “The Design and Analysis of Computer Algorithms” Pearson Education.
Journals/Magazines/Govt.Reports/Gazatte/IndustryTrends
1. https://leetcode.com
SWAYAM/NPTEL/MOOCs Certification
1. Code Tantra
2. Coding Ninjas
3. Code Chef
4. https://onlinecourses.nptel.ac.in/noc19_cs47/preview (Swayam)
5. GeeksforGeeks
COURSEPACK |
PROBLEM-BASED LEARNING
9 Find Minimum Cost Spanning Tree of a given connected undirected graph using KL6
Kruskal's algorithm. Use Union-Find algorithms in your program.
10 Find Minimum Cost Spanning Tree of a given undirected graph using Prim’s algorithm. KL6
11 Design a program to (a) Implement All-Pairs Shortest Paths problem using Floyd's KL6
algorithm.
(b) Implement Travelling Sales Person problem using Dynamic programming.
12 Design and implement to find a subset of a given set S = {Sl, S2, .... , Sn} of n positive KL6
integers whose SUM is equal to a given positive integer d. For example, if S ={1, 2, 5, 6,
8} and d= 9, there are two solutions {1,2,6}and {1,8}. Display a suitable message, if the
given problem instance doesn't have a solution.
13 Transpose of Matrix KL5
15 Given an array arr[] of size N-1 with integers in the range of [1, N], the task is to find the KL6
missing number from the first N integers.
16 Given a string, the task is to count all palindrome sub string in a given string. Length of KL6
palindrome sub string is greater than or equal to 2.
18 Given two strings, the task is to find if a string can be obtained by rotating another string KL6
by two places.
19 Given an expression string exp, write a program to examine whether the pairs and the KL5
orders of “{“, “}”, “(“, “)”, “[“, “]” are correct in the given expression.
COURSEPACK |
21 Given an integer k and a queue of integers, The task is to reverse the order of the first k KL6
elements of the queue, leaving the other elements in the same relative order.
22 Given a singly linked list with N nodes and a number X. The task is to find the node at KL5
the given index (X)(1 based index) of linked list.
23 Given a Linked List and a number N, write a function that returns the value at the Nth KL5
node from the end of the Linked List.
24 Given a linked list, check if the linked list has a loop (cycle) or not. The below diagram KL6
shows a linked list with a loop.
25 Given two sorted arrays arr1[] and arr2[] of sizes n and m in non-decreasing order. Merge KL5
them in sorted order without using any extra space. Modify arr1 so that it contains the
first N elements and modify arr2 so that it contains the last M elements.
26 Given a string S of size N, the task is to sort the string without changing the position of KL5
vowels.
27 Given an array arr[] of size N and a number K, where K is smaller than the size of the KL5
array. Find the K’th smallest element in the given array. Given that all array elements are
distinct.
28 Given the arrival and departure times of all trains that reach a railway station, the task is KL6
to find the minimum number of platforms required for the railway station so that no train
waits. We are given two arrays that represent the arrival and departure times of trains that
stop.
29 Given two strings ‘str1’ and ‘str2’ of size m and n respectively. The task is to KL6
remove/delete and insert the minimum number of characters from/in str1 to transform it
into str2. It could be possible that the same character needs to be removed/deleted from
one point of str1 and inserted at some another point.
30 Given are N ropes of different lengths, the task is to connect these ropes into one rope KL6
with minimum cost, such that the cost to connect two ropes is equal to the sum of their
lengths.
31 Given a binary search tree, task is to find Kth largest element in the binary search tree. KL6
32 Given a weighted graph and a source vertex in the graph, find the shortest paths from the KL6
source to all the other vertices in the given graph.
COURSEPACK |
STUDENT-CENTERED LEARNING (Seff-Learning towards lifelong 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 BTLs)
The students, in a group, are expected to conceive an idea based on the content (objectives/outcomes) and apply the
suitable knowledge to demonstrate their learning.
To enhance their skill set in the integrated course, the students are advised to execute course-based design
projects. Some sample projects are given below:
S. No Suggested Projects KL
1 KL5
Comparing Kruskal and Prim’s algorithm in MST.
2 KL5
Greedy and Backtracking Algorithm Comparison in Graph Coloring Problem.
4 Solving Travelling Salesman Problem Using Greedy Algorithm and Brute Force KL3
Algorithm
5 KL6
Design and Analysis 0/1 Knapsack Problem.
6 Design Coin Change Problem using Brute Force and Greedy Algorithm KL6
7 Comparing Exhaustive Search Algorithm and Greedy Algorithm in job Scheduling KL5
Problem
8 Build a Cash Flow Minimiser KL6
9 KL6
Build a CB Mario game using Dynamic Programming Optimisation.
11 KL6
Build a Snakes & Ladders game, challenge the player to win in minimum number of
moves. You can use BFS to compute it.
12 KL6
Make an application like Google Maps - You can use Dijkshtra’s algorithm to find the
shortest paths, A* Search for more efficient & real time use.
13 KL6
Create a Binary Search Algorithm to Search for a Value with a Certain Precision
COURSEPACK |
14 KL6
Create Space Efficient Algorithm for Subset Sum
15 KL6
Design the game- Place eight queens on an 8 × 8 chessboard so that no queen attacks
another queen.
16 KL6
Build a game like SPACE- SHOOTER.
17 KL6
Make a PHONEBOOK using TRIE Data structure
18 KL3
Use a string compression algorithm, like run length encoding or Huffman coding
19 KL6
Build. Game like Flappy Bird.
20 KL6
Build a snake and Ladders game, challenge the player to win in minimum number of
moves. You can use BFS to compute it.
COURSEPACK |