CSB 252 Design and Analysis of Algorithms
CSB 252 Design and Analysis of Algorithms
NO NO NO NO
Type of course Core
Course Title DESIGN AND ANALYSIS OF ALGORITHMS
Course
Coordinator
Course objectives: The main objective is to provide a solid foundation in algorithm design
and analysis. Other objectives include: Getting familiar with basics of
graphs, matching algorithms and data structures. Understanding and
designing algorithms using greedy strategy, divide and conquer approach,
dynamic programming, and max flow - min cut theory.
Analyzing asymptotic performance of algorithms including formulating
recurrence relations. Learning about computational complexity,
approximation and randomized algorithms.
Learning to provide correctness proofs for algorithms.
Synthesizing efficient algorithms in common engineering design
situations.
POs
Semester Autumn: Spring: Yes
IV Lecture Tutorial Practical Credits Total teaching
hours
Contact Hours 3 0 2 4 36
Prerequisite course code as NIL
per proposed course numbers
Prerequisite credits NIL
57
Publisher Universities Press
Edition Second edition 2008
2 Title Computer Algorithms : Introduction to Design and
Analysis
Author Sara Baase and Allen Van Gelder
Publisher Pearson Education
Edition 3rd Edition 1999
3 Title Fundamental of Algorithms
Author Brassard Bratley
Publisher PHI
Edition 1st Edition 1996
4 Title Algorithms Design
Author M T Goodrich etal
Publisher John Wiley
Edition
5 Title The Design and analysis of Algorithms
Author A V Aho et al
Publisher Pearson Education
Edition 1st Edition 2002
7 Title Algorithm Design
Author Jon. Kleinberg and E Tardos
Publisher Pearson Education
Edition 1st Edition 2013
Content Unit – 1 (5 Hours)
Introduction: Algorithms, Analysis of Algorithms, Design of Algorithms,
Complexity of Algorithms, Asymptotic Notations, Growth of function,
Recurrences and their solution methods.
Sorting in polynomial Time: Insertion sort, Merge sort, Heap sort, and
Quick sort Sorting in Linear Time: Counting sort, Radix Sort, Bucket Sort,
Medians and order statistics.
Unit – 2 (7 Hours)
Advanced Data Structure: Red Black Trees, Augmenting Data Structure,
Binomial Heap, B-Tree, Fibonacci Heap, and Data Structure for Disjoint
Sets, All kinds of Algorithms on these data structures, Dictionaries and
priority Queues, mergeable heaps, concatenable queues.
Unit – 4 (8 Hours)
Dynamic Programming: Chained matrix multiplication, longest common
58
subsequence. Divide and Conquer: Order Statistics – finding the median,
exponentiation, matrix multiplication, LCS. Computational Geometry:
Line segments, Optimal polygon triangulation. Approximate Algorithm:
Travelling Salesman Problem, vertex-cover problem.
Unit – 5 (6 Hours)
Primality testing, Integer factorization, Randomized algorithms,
Probabilistic algorithms. String Matching algorithms: Rabin Karp, KMP,
Boyer Moore. Introduction to problem classes – NP, NPC, NP-Hard.
Course Assessment Continuous Evaluation 25%
Mid Semester 25%
End Semester 50%
59