BSDCH ZC317 AlgorithmDesign 1-2022
BSDCH ZC317 AlgorithmDesign 1-2022
Course Description
This course enables the students to learn how to effectively construct and apply techniques for
analyzing algorithms including sorting, searching etc. Gain an understanding of various algorithm design
techniques like divide and conquer, greedy, dynamic programming, backtracking and work on
algorithms’ best worst and average case analysis. This course requires understanding of basic
programming and data structures.
Course Objectives
No Objective
CO2 To perform best case, worst case and average case analysis for a given algorithm
CO3 To demonstrate systematic techniques and approaches for constructing simple C programs.
CO4 To understand different algorithmic paradigms such as divide and conquer, greedy, dynamic
programming, etc. and apply them.
CO5 To be able to choose, among many possible algorithms to solve a problem, the most efficient
algorithm for the intended application.
Text Book(s)
No Author(s), Title, Edition, Publishing House
T1 Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein., Introduction to
Algorithms, Third Edition,2010
T2 Michael T Goodrich & Roberto Tamassia, Algorithm Design, Wiley Singapore Edition,2002
Reference Book(s) & other resources
No Author(s), Title, Edition, Publishing House
R1 Jon Kleinberg, Eva Tardos, Algorithm Design, First Design, Pearson,2012
Content Structure
No Title of the Module References
M1 Introduction to Algorithms and its Analysis T1:Ch1,Ch2,
RAM model Ch3, Ch4
Asymptotic Notations
Analyzing Recursive Algorithms
Recurrence Relation & Master algorithm T2: Ch1
Sorting (Comparing sorting techniques in terms of time complexity)
Learning Outcomes:
No Learning Outcomes
LO1 Upon completion of this course students will be able to write the performance of any algorithm
using asymptotic notations and argue about the correctness of an algorithm.
L02 Students will be able to frame recurrence equations for divide and conquer problems and solve
them.
LO3 Students will be able to classify the hardness of a decision problem in terms of different
complexity classes.
LO4 Students will be able to choose an algorithm design technique for any given problem and prove
its correctness
Part B: Contact Session Plan
Evaluation Scheme
Important Information