You are on page 1of 4

Course Breakdown

Course Name: Analysis of Algorithm


Credit Hours: 3(3-0)
Course Code: CS 542

Department of Computer Science


Barani Institute of Management
Sciences (BIMS)

Lecture wise plan Design & Analysis of Algorithms (D&AA)


Instructor: Farhan Ullah
Email: farhanmscs@ciitsahiwal.edu.pk
Cell # 0300 9165664
Course Objectives:
The main objectives of the course are
To highlight the significance of performance of an algorithm and thus its complexity
To understand the importance of the choice of an appropriate data structure for an optimized
overall performance
To learn various algorithm design techniques and their applications on different problems in
various domains
To learn to solve new problems using the design and analysis procedures
Description of Course:
The Analysis of Algorithms is one of the most important courses in Computer Science, targeted
towards teaching efficient problem solving, to the students. It majorly focuses on two vital activities
in computing i.e. the design and then analysis of algorithms with the intent of producing the most
optimized solutions for problems. It mainly includes discussion of various solutions to the basic
computing problems such as sorting, searching, and selection. Students explore algorithm analysis worst and average case analysis - recurrences and asymptotic on different data structures such as
basic linear structures, balanced trees, heaps, and hash tables. They learn algorithm design techniques
- divide-and-conquer, dynamic programming, greedy algorithms, and amortized analysis. Discuss of
algorithms for fundamental graph problems such as depth-first search, connected components,
topological sort, shortest paths is also included in the course. Moreover students are also introduced
to the string match NP-Completeness and Approximation Algorithms
Text Books:
Textbook:
Introduction to Algorithms, 2nd Edition by Thomas H. Cormen
Reference
1. Algorithm Design, by Jon Kleinberg and Eva Tardos, 2013 (Pearson)
2. Introduction to the Design & Analysis of Algorithms, by Anany Levitin, Second Edition,
2012 (Pearson)
Pre-requisite:

Data Structure and Algorithms

Course Breakdown

Course Name: Analysis of Algorithm


Credit Hours: 3(3-0)
Course Code: CS 542

Department of Computer Science


Barani Institute of Management
Sciences (BIMS)

Assignments and Quizzes: Approximately 4 assignments and minimum 4 quizzes shall be given
during the semester. The quizzes shall preferably be unannounced
Attendance Policy: 80% attendance is mandatory; deficient students will not be allowed to appear in
the examination.
Lecture Breakdown
Lecture #

Topics
Introduction to the Course

Quick Review of Necessary Data Structure Concepts


Multiple Solutions for one problem

Introduction to the Course


Significance of Algorithm Performance and Complexity
Some Simple Examples
Algorithm Analysis Framework
Asymptotic Order of Growth

Algorithm Analysis Framework


Standard Notations and Common Functions

Mathematical Analysis of Non- recursive Algorithms


Mathematical Analysis of Recursive Algorithms

Introduction to Tree
Binary tree
Tree Travesing (PreOrder, InOrder, PostOrder)

Tree Part
AVL Tree, Binary Search Tree

Tree Part
B Tree, Heap Data Structure
Min Heap & Max Heap

9
10

Tree Part
Min Heap & Max Heap
Heap Sort
Brute Force Algorithms
Selection Sort

Course Breakdown

11

Course Name: Analysis of Algorithm


Credit Hours: 3(3-0)
Course Code: CS 542

Exhaustive Search

12

Sorting
Quick Sort
Merge Sort

11

Sorting
Heap Sort
Radix Sort

12

Medians and Order Statistics


Minimum and maximum
Selection in expected linear time

13

14

15

16

17

18

Medians and Order Statistics


Selection in worst-case linear time
Graph details (definition, types)
Graph Algorithms
Depth First Search (DFS)
Graph Algorithms
Breadth First Search (BFS)
Topological Sort
Greedy Algorithms
Element of greedy strategy
Dijkstra
Minimum Spanning Tree (MST)
Prims
Kruskul
Single Source Shortest Paths
Bellman-Ford Algorithm

19

Single Source Shortest Paths


Bellman-Ford Algorithm

20

Greedy Algorithms
A task-scheduling problem

21

Dynamic Programming
Elements of dynamic programming

Department of Computer Science


Barani Institute of Management
Sciences (BIMS)

Course Breakdown

Course Name: Analysis of Algorithm


Credit Hours: 3(3-0)
Course Code: CS 542

22

Dynamic Programming
All Pair shortest distance( Floyed Warshal)

23

Dynamic Programming
Matrix-chain multiplication

24

Dynamic Programming
Longest Common Subsequence

25

String Matching
The nave string-matching algorithm

26

String Matching
The Rabin-Karp algorithm

27

Hash Tables
Direct-address table

28

29

Hash Tables
Hash tables
Hash functions
Hash Tables
Open addressing

30

Hash Tables
Perfect addressing

31

Course Revision

32

Course Revision

Department of Computer Science


Barani Institute of Management
Sciences (BIMS)