UCS2403LessonPlan v1.2
UCS2403LessonPlan v1.2
Semester IV
COURSE OBJECTIVES
1. To learn algorithms analysis techniques.
2. To analyze the asymptotic performance of algorithms.
3. To apply different algorithm design strategies.
4. To prove the limitations of algorithmic power.
5. To demonstrate familiarity with important algorithms and data structures.
UNIT I INTRODUCTION AND ANALYSIS 9
Divide and Conquer: Mergesort – Quicksort – Multiplication of large integers – Strassen’s matrix
multiplication; Backtracking: Subset sum – N-queens problem – Hamiltonian circuit problem.
SUGGESTIVE EXPERIMENTS
COURSE OUTCOMES
On successful completion of this course, the student will be able to:
1. Analyze asymptotic running time for various kinds of algorithms (K4)
2. Analyze the time and space complexity of Divide-and-Conquer and Backtracking algorithms
(K4)
3. Evaluate Dynamic Programming and Greedy techniques for a given problem (K5)
4. Use iterative improvement and branch-and-bound design techniques (K5)
5. Explain the concepts of NP completeness (K2)
TEXTBOOKS
1. Anany Levitin, “Introduction to the Design and Analysis of Algorithms”, 3rd Edition,
Pearson Education, 2012.
2. Jeff Erickson, “Algorithms”, 1st Edition, 2019
REFERENCES
P K1 1
1 Introduction and Motivation
P/PS/
6 Numericals to solve recurrences K4 1
ML
Mergesort
2 P K3 1
● Algorithm
● Example
● Analysis
Quicksort
● Algorithm
3 P K3 2
● Example
● Analysis
N-queens problem
● Problem Statement P/PS/
7 K3 1
● State Space Tree ML
● Analysis
Floyd-Warshall algorithm
● Problem Statement
P/PS/
4 ● DP Solution
ML
K3 1
● Recurrence relation
● Time Complexity Analysis
Prim’s algorithm
● Problem Statement
● Greedy Solution
7 ● Correctness proof
P K3 1
● Time Complexity Analysis using adj matrix and adj
list
Kruskal’s algorithm
● Problem Statement
● Greedy Solution
8 ● Correctness proof
P K3 1
● Time Complexity Analysis using adj matrix and adj
list
Lower-bound arguments
1 P, NP problems P/DA K2 1
Examples
Linear Programming
● Fractional Solution, Simplex Method
● Integer Solution
5 ● Comparing hardness of finding the above two
P/ML K2 2
solutions
● Examples
● Linear Programming
Reason: Linear Programming is a powerful tool in obtaining approximate solutions for many
combinatorial problems using a mathematical model that defines linear relationships. It is also
used in ML, where many real-world ML problems are often formulated as linear equations and
inequalities, not just because they are naturally linear but because modeling as a linear program
is a practical compromise.
Mapping of Course Outcomes with Program Outcomes
4 - - - - - -
5 - - - - - - - - - -
6 - - - - - - - - - -
7 - - - - - - - - - -
8 - - - - - - - - - -
9 - - - - - - - - - -
10 - - - - - - 10.1.1(3) 3 - -
11 - - - - - - - - - -
12 - - - - - - 12.3.1(3) 3 - -
PSO2 - - - - - - - - - -
PSO3 - - - - - - - - - -
PI Description
1.1.1 Apply the knowledge of discrete structures, linear algebra, statistics, and numerical
techniques to solve problems
1.4.1 Apply theory and principles of computer science and engineering to solve engineering
problems
2.1.3 Identify mathematical and algorithmic knowledge that applies to a given problem
12.3.1 Search and comprehend technical literature and other credible sources of information
In the attainment, CO4 there is a gap, additional problems will be given in each unit to bridge
the gap in the ensuing offering
CO to PO/PSO Mapping
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 2 2
CO2 3 2 2 3
CO3 3 2 2 3
CO4 3 2 2 3 3 3
CO5 3 2 2
Total 15 10 6 3 3 13
Score 3 2 2 3 3 3
15
40% 60% 75% 25% 35 marks
marks
50 Marks 50 Marks
Lab Schedule:
Demo 70
Modr:lar and 10
Incremental coding
Modular and 5
Incremental coding
Viva-voce 10
\
prfr,- I zl
Dr. Balasubramanian V
(Course ln-charge) UG - PAC Team (HOD / CSE)
– 10
– 100
– 1000
– 10000
– 100000
• Implement insertion sort, shell sort and radix exchange sort for an array
of size 10000 when the input array is: [5 points]
– Sorted in ascending order
– Sorted in descending order
– Not sorted
• Plot the graphs for both the above implementations with n on the x-axis
and time of execution in milliseconds on the y-axis. You may use standard
Python packages for plotting the graph. [5 points]
1
Sri Sivasubramaniya Nadar College of Engineering, Kalavakkam - 603 110
(An Autonomous Institution, Affiliated to Anna University, Chennai)
1 + (1 + 2) + (1 + 2 + 3) + . . . + (1 + 2 + 3 + . . . + n)