KEMBAR78
R1UC407B Design and Analysis of Algorithm | PDF | Dynamic Programming | Time Complexity
0% found this document useful (0 votes)
36 views19 pages

R1UC407B Design and Analysis of Algorithm

The Course Pack serves as a comprehensive pedagogical guideline for faculty members, detailing course components such as objectives, outcomes, assessment patterns, and instructional strategies. It promotes a uniform approach to course delivery while allowing for innovation in teaching methods and assessment tools. The document outlines specific courses, including the Design and Analysis of Algorithms, along with prerequisites, course content, and assessment strategies.

Uploaded by

ak47817391
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)
36 views19 pages

R1UC407B Design and Analysis of Algorithm

The Course Pack serves as a comprehensive pedagogical guideline for faculty members, detailing course components such as objectives, outcomes, assessment patterns, and instructional strategies. It promotes a uniform approach to course delivery while allowing for innovation in teaching methods and assessment tools. The document outlines specific courses, including the Design and Analysis of Algorithms, along with prerequisites, course content, and assessment strategies.

Uploaded by

ak47817391
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/ 19

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 2


COURSEPACK

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.

Course Title Design and Analysis of Algorithm Course Type Integrated


Course Code R1UC407B Class B.Tech CSE and
Specialization IV Sem
Activity Credits Credit Hours Total Number of Assessment in
Classes per Semester Weightage
Lecture 3 4
Instruction

Practical
Tutorial

Tutorial
0 0

Theory
delivery

study
Self-

SEE
CIE
Practical 1 4
Self-study 1
Total 5 8 45 0 30 105 50% 50%
Course Lead Dr. Ashok Kumar Yadav Course Dr. Mili Dhar
Coordinator
Names Course Theory Practical
Instructors Faculty Name Faculty Name

Abhishek Kumar Pandey Abhishek Kumar Pandey

Albert Mundu Albert Mundu


Ambika Gupta Ambika Gupta

Anurag Maurya Anurag Maurya

Ashok Kumar Yadav Ashok Kumar Yadav

Ashwani Kumar Ashwani Kumar

Jyoti Yaduwanshi Jyoti Yaduwanshi

Kishan Kumar Kishan Kumar

Mandeep Mandeep

Mili Dhar Mili Dhar

Mithilesh Kumar Yadav Mithilesh Kumar Yadav

Neha Singh Neha Singh

Pradeep Chauhan Pradeep Chauhan


Radha Rani Radha Rani

Sachin Kumar Tyagi Sachin Kumar Tyagi

Shachi Mall Shachi Mall

: for internal circulation 3


COURSEPACK
FRAMEWORK
Sumit Kumar Mishra Sumit Kumar Mishra

Sunil Kumar (31672) Sunil Kumar (31672)

Tushar Mehrotra Tushar Mehrotra

Vartika Mishra Vartika Mishra

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

PREREQUISITE COURSE Yes


REQUIRED
If, yes please fill in the Details Prerequisite course code Prerequisite course name

R1UC303B Data Structures using Java

: for internal circulation 4


COURSE OBJECTIVE

This course will introduce students to searching and sorting as well as data structures like stack, queue, and binary tree.
Students will write many programs around these topics during this course. The objective of the course:
• 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.

COURSE OUTCOMES (COs)

After the completion of the course, the student will be able to:

CO No. Course Outcomes


R1UC407B.1 Able to analyze the algorithms and find out their time and space complexity.
R1UC407B.2 Able to apply the concepts of brute force and divide and conquer techniques in
problem solving,
R1UC407B.3 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.
R1UC407B.4 Analyze and apply classical sorting, searching, optimization and graph algorithms.
R1UC407B.5 Apply and understand basic techniques for designing algorithms, including the
techniques of recursion, dynamic programming, and greedy.

: for internal circulation 5


COURSEPACK
FRAMEWORK

PROGRAM OUTCOMES (POs):


Engineering Knowledge: Apply knowledge of mathematics, natural science, computing,
PO1: engineering fundamentals and an engineering specialization as specified in WK1 to WK4
respectively to develop to the solution of complex engineering problems.

Problem Analysis: Identify, formulate, review research literature and analyse complex
PO2: engineering problems reaching substantiated conclusions with consideration for sustainable
development. (WK1 to WK4).
Design/Development of Solutions: Design creative solutions for complex engineering
problems and design/develop systems/components/processes to meet identified needs with
PO3:
consideration 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
PO4: engineering 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
PO6: solving complex engineering problems for its impact on sustainability with reference 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 and
PO7:
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 community


and society at large, such as being able to comprehend and write effective reports and design
PO9:
documentation, make effective presentations considering cultural, language, and learning
differences.
Project Management and Finance: Apply knowledge and understanding of engineering
PO10: management principles and economic decision-making and apply these to one’s own work, as a
member and leader in a team, and to manage projects and in multidisciplinary environments..
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).

Have the ability to work with emerging technologies in Computer Science and Engineering
PSO1:
requisite to Industry 4.0.

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

: for internal circulation 6


BLOOM’S LEVEL OF THE COURSE OUTCOMES
INTEGRATED

Remember Understand Apply Analyse Evaluate Create


CO No.
BTL1 BTL2 BTL3 BTL4 BTL2 BTL6
R1UC407B.1 √
R1UC407B.2 √
R1UC407B.3 √
R1UC407B.4 √
R1UC407B.5 √

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

COURSE ARTICULATIONMATRIX

PSO1

PSO2
PO10

PO11
PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9
COs#/POs

R1UC407B.1 3 3 3
R1UC407B.2 3 2 2 2
R1UC407B.3 3 2 2
R1UC407B.4 3 2 2
R1UC407B.5 3 3 3 3 3
Note: 1-Low, 2-Medium, 3-High

: for internal circulation 7


COURSEPACK
FRAMEWORK

COURSE CONTENT

Content

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

Brute Force and Divide-and-Conquer


Brute Force: String Matching, Traveling Salesman Problem, Knapsack Problem, Assignment problem.
Divide and conquer: Merge sort, Quick sort, Binary search, Heap sort, Strassen’s Matrix Multiplication

Greedy Technique and Dynamic Programming


Greedy Technique: Minimum spanning tree, Prim’s and Kruskal's Algorithm, Huffman Trees and Codes,
fractional Knapsack Problem, Graph algorithms: Topological sort, Dijkstra's Algorithm.

Dynamic Programming: Principle of optimality. Coin-Exchange Problem, Longest Common Subsequence


Problem, Travelling Salesman Problem, Multi stage graph, All pair shortest paths: Floyd–Warshall algorithm,
Knapsack Problem.

Backtracking and Branch & Bound


Backtracking: n-Queens problem, Subset sum problem, Graph Coloring
Branch & Bound: Knapsack Problem, Traveling Salesman Problem

Iterative Improvement and Limitations of Algorithm Power:


Introduction to P, NP NP- Complete and NP Hard Problems, Introduction to Approximation
algorithms, Approximation Algorithms for NP-Hard Problems, Traveling Salesman problem,
Knapsack problem.

List of Practical

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.
4. Write a program to sort given set of numbers using Heap sort.

5. Write a program to sort given set of numbers Counting Sort.

6. Write a program to sort given set of numbers in ascending/descending order using merge sort

7. Implement a Naive string-matching approach

8. Implement Rabin Karp string-matching approach

9. Write a program to implement Matrix Chain Multiplication.

: for internal circulation 8


10. Implement KMP string-matching approach

11. Write a program to sort a given set of numbers without comparing/swapping

12. Write a program to sort a given set of numbers using Maxhipify

13. WAP to implement fractional knapsack problem

14. WAP to implement Strassen’s Matrix Multiplication

15. Write a program to implement minimum spanning trees using Prims algorithm

16. Write a program to implement Knapsack using Greedy technique.

17. Write a program to implement the Bellman-Ford Algorithm.

18. Compute the transitive closure of a given directed graph using Warshall's algorithm. Write a program to
implement the shortest path algorithm
19. Write a program to solve the LCS problem.

20. Write a program to implement Knapsack using the dynamic technique.

21. Write a program to implement the n-Queen Problem using backtracking.

22. Write a program to implement coin -exchange Problem

23. Write a program to implement sum of subset problem

24. Write a program to implement graph coloring technique

25. Obtain the Topological ordering of vertices in a given digraph.

26. Implement TCS using branch and bound method

27. Write a program to implement the Greedy algorithm using Activity Selection Problem.

28. WAP to implement Huffman Trees and Codes

29. Write a program to implement Dijkstra’s Algorithm.

30. Write a program to implement Greedy algorithm using Task Scheduling Problem

: for internal circulation 9


COURSEPACK
FRAMEWORK

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

Assessment Tools CIE Total Marks Final Marks

LAB @ MTE LAB EXAM* CIE SEE CIE * 0.5 +


(Work SEE * 0.5
+ Record)
Integrated 25 50 25 100 100 100

@ Lab Work – 15 marks + Lab record – 10 marks

* Passing criteria – 30% of marks to be secured in the lab exam conducted by two examiners
(one internal + one external).

: for internal circulation 10


LESSON PLAN FOR COMPREHENSIVE COURSES
FOR THEORY 15 weeks * 3 Hours = 45 Classes) (1credit = 1Lecture Hour)
FOR PRACTICAL 15 weeks * 2Hours = 30 Hours lab sessions (1 credit = 2 lab hours)

LNo T/L Topics Skills Competency


T Introduction, Fundamentals of algorithm Designing Algorithms Designing algorithms,
(Line count, operation count) and checking the analyze their space and
complexity time complexities.
1
T Algorithm Design Techniques (Approaches,
Design Paradigms)
2
T Designing an algorithm and its Analysis (Best,
Worst & Average case)
3
L Write a program to sort given set of numbers in
ascending/descending order using Bubble sort and
4 also search a number using binary search.
L Write a program to sort given set of numbers in
ascending/descending order using Insertion sort
5 and also search a number using linear search.
T Asymptotic Notations (O, Ω, ʘ) based on Analyze the order of the
Orders of Growth, Asymptotic Notations growth of any algorithm
numerical
6
T Mathematical Induction Analysis
7
T Analysis-Mathematical analysis for Recursive
and Non-recursive algorithms Analyze the complexity
8 of any algorithm with
L Write a program to sort given set of numbers recurrence relation
in ascending/descending order using Quick
sort and any other sorting algorithm. Also
record the time taken by these two programs
and compare them.
9
L Write a program to sort given set of numbers
using Heap sort.
10
T Recurrence Relation - Substitution method,
11
T Recurrence Relation - Recursive method
12
T Recurrence Relation - Master's Theorem
13
L Write a program to sort given set of numbers
Counting Sort.
14
L Write a program to sort given set of numbers in Searching and sorting Analyze and apply
ascending/descending order using merge sort Algorithms searching and sorting
15 algorithms
T String matching approaches: Naive Analysis of Pattern Finding the optimal
16
Matching Approaches solution using different
T String matching approaches: Rabin Karp
17 approaches and analyze
COURSEPACK
FRAMEWORK
T String matching approaches: KMP the problem
18
L Implement a Naive string-matching approach
19
L Implement Rabin Karp string-matching approach
20
T Brute Force: Closest-pair and convex-hull Designing and using
21 Problems Brute Force methods
T Brute Force: Traveling Salesman Problem
22
T Brute Force: Knapsack Problem,
23
T Brute Force: Exhaustive Search, Assignment
24 problem.
L Write a program to implement Matrix Chain
25 Multiplication.
L Implement KMP string-matching approach
26
T Divide and conquer: Linear search, Binary search Designing and analysis of
27
divide and conquer methods
T Divide and conquer: Merge sort
28
T Divide and conquer: : Quick sort
29
T Divide and conquer: Heap sort
30
L Write a program to sort a given set of numbers
without comparing/swapping
31
L Write a program to sort a given set of numbers
using Maxhipify
32
T Divide and conquer: Strassen’s Matrix
Multiplication
33
T Greedy Technique: Container loading problem Designing and using greedy
34 methods
T Greedy Technique: Fractional Knapsack
35
L WAP to implement fractional knapsack problem
36
L WAP to implement Strassen’s Matrix
Multiplication
37
T Greedy Technique: Minimum spanning tree-
Prim’s algorithm
38
T Greedy Technique: Minimum spanning tree-
Kruskal's Algorithm
39
T Huffman Trees and Codes
40
L Write a program to implement minimum spanning
trees using Prims algorithm
41
L Write a program to implement Knapsack using
Greedy technique.
42
T Single Source Shortest Path: Dijkstra's Algorithm.
43
T Dynamic Programming: Principle of optimality, Finding the Optimal
0/1 Knapsack solution using dynamic
44 approach
T Coin-Exchange Problem
45
L Write a program to implement the Bellman-Ford
Algorithm.
46

: for internal circulation 12


L Compute the transitive closure of a given
directed graph using Warshall's algorithm. Write
a program to implement the shortest path
47 algorithm
T Longest Common Subsequence Problem
48
T Travelling Salesman Problem
49
T Multi-stage graph
50
L Write a program to solve the LCS problem.
51
L Write a program to implement Knapsack using
the dynamic technique.
52
T Backtracking: n-Queens problem Analysis and applications
of backtracking method.
53
L Write a program to implement the n-Queen
Problem using backtracking.
54
L Write a program to implement coin -exchange
Problem
55
T Backtracking: Subset sum problem
56
T Backtracking: Graph Coloring
57
L Write a program to implement sum of subset
problem
58
L Write a program to implement graph coloring
technique
59
T Branch & Bound: Assignment Problem Analysis and applications
of Branch and Bound
60 method.
T Branch & Bound: Traveling Salesman Problem
(TSP)
61
L Obtain the Topological ordering of vertices in a
given digraph.
62
L Implement TCS using branch and bound method
63
T Analysis of different approaches
64
T Introduction to P, NP NP- Complete and NP Hard Finding the solution of Understand to solve
Problems. problems in polynomial problems in polynomial
65 time , nondeterministic time , nondeterministic
T Complete and NP-Hard Problems. polynomial-time polynomial-time.
66
T Introduction to Approximation Algorithms.
Approximation Algorithms for NP-Hard Problems
67
T Traveling Salesman Problem, Knapsack problem
68
L Write a program to implement the Greedy
algorithm using Activity Selection Problem.
69
COURSEPACK
FRAMEWORK
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

: for internal circulation 14


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
FRAMEWORK

PROBLEM-BASED LEARNING
Exercises in Problem-based Learning (Value Added Experiments)
SNo Problem KL
1 Write a program to implement Minimum Cost spanning tree. KL5
2 Write a program to implement Sum of subset problem. KL5
3 Write a program to implement Task Scheduling Problem using Greedy technique. KL5
4 Write a program to implement Activity Selection Problem using Greedy technique. KL5
5 Compute the transitive closure of a given directed graph using Warshall's algorithm. Write KL6
a program to implement shortest path algorithm.
6 Write a program to find all Hamiltonian Cycles in a connected undirected Graph G of n KL5
vertices using backtracking principle.

7 Develop a program to implement solve LCS problem. KL6


8 Develop a program to implement Huffman-code. KL6

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

14 Given an (n x m) matrix, rotate the matrix by 90 degrees in clockwise direction. KL6

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.

17 Given a set of strings, find the longest common prefix. KL5

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.
20 Given a string, reverse it using stack. KL5

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

A) COURSE-BASED PROJECT (Psychomotor skills)


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 Comparing Kruskal and Prim’s algorithm in MST. KL5

2 Greedy and Backtracking Algorithm Comparison in Graph Coloring Problem. KL5

3 Build the game of Capsa Susun using Greedy Algorithm KL6

4 Solving Travelling Salesman Problem Using Greedy Algorithm and Brute Force KL3
Algorithm
5 Design and Analysis 0/1 Knapsack Problem. KL6

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 Build a CB Mario game using Dynamic Programming Optimisation. KL6

10 Build an application of Sudoku game using Backtracking method KL6

11 Build a Snakes & Ladders game, challenge the player to win in minimum number of KL6
moves. You can use BFS to compute it.
12 Make an application like Google Maps - You can use Dijkshtra’s algorithm to find the KL6
shortest paths, A* Search for more efficient & real time use.
13 Create a Binary Search Algorithm to Search for a Value with a Certain Precision KL6

14 Create Space Efficient Algorithm for Subset Sum KL6

15 Design the game- Place eight queens on an 8 × 8 chessboard so that no queen attacks KL6
another queen.
16 Build a game like SPACE- SHOOTER. KL6

17 Make a PHONEBOOK using TRIE Data structure KL6

18 Use a string compression algorithm, like run length encoding or Huffman coding KL3

19 Build. Game like Flappy Bird. KL6

20 Build a snake and Ladders game, challenge the player to win in minimum number of KL6
moves. You can use BFS to compute it.
B) SELF-LEARNING THROUGH MOOCs (Cognitive Skills):
1. Code tantra
2. https://www.coursera.org/courses?query=algorithm%20design
3. https://www.geeksforgeeks.org/learn-data-structures-and-algorithms-dsa-tutorial/?ref=shm

(Course Lead) (Program Chair) (Dean)

You might also like