Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

PMAS Arid Agriculture University Rawalpindi

University Institute of Information Technology

CS 542: Analysis of Algorithm 3(3-0)

Class: Semeste Fall 206


r:
Instructor: Iftikhar Muhammad Office:
Email: Iftikhar_icp@yahoo.com

Website:
Counseling Hours: TBA
Pre-requisites: CS – 443 Data Structure and Algorithms
Course Description: 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 inlcudes 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, 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.
Objective:
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
Course Learning After the completion of this course, the student shall be able to:
Outcomes  Analyze and compare the computational efficiency of algorithms
 Propose improvements in an algorithm to enhance the overall efficiency
 Understand a problem thoroughly, identify and analyze suitable criteria
and specifications to a (new) problem, and apply an appropriate
algorithm design technique to devise a solution
 Justify their choice of design technique for a given problem
 Explain and apply backtracking and branch and bound techniques to
deal with some hard problems.
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)

Grading Policy:  18 Mid Tem Exam


(Tentative)  30 Final Exam
 12 (Assignment +Quizzes + Project)
a. 06 Assignments
b. 03Quizzes
Quiz/Assignments Quizzes:
Policy  Quizzes will be unannounced some time.
 They can be given anytime during the lecture, mostly either in the
first ten minutes of the class (so come to the class on time & be
prepared!) or in the last ten minutes of the class (so be alert and
listen to the lecture carefully).
 If you miss a quiz, you miss it!
 It’s up to the instructor’s discretion to choose the number of
quizzes for evaluation purposes.

Assignments:
 Assignments need to be submitted on time. You will have 10 hours
to submit the assignment after the due date & time. However, 10%
marks will be deducted for every passing hour after the due time.
 Copying/Cheating whole or part of the assignment from anywhere
without proper credit/references will not be tolerated. Whether you
have copied or your work has been copied by someone else, you
will be penalized brutally.

Week #01
Introduction to the Course
Important Computing Problem Types
Quick Review of Necessary Data Structure Concepts
Multiple Solutions for one problem
Significance of Algorithm Performance and Complexity
Some Simple Examples
Week#0 2
Algorithm Analysis Framework
Asymptotic Order of Growth
Asymptotic Order of Growth
Standard Notations and Common Functions
Week# 0 3 and 04

Mathematical Analysis of Non- recursive Algorithms


Mathematical Analysis of Recursive Algorithms
Recurrences and Solutions
Master Theorem
Week # 05:
Brute Force Algorithms
Selection Sort
Exhaustive Search
Week # 06:
Sorting
Quick Sort
Merge Sort
Heap Sort
Radix Sort
Week #07
Graph Algorithms
Depth First Search (DFS)
Breadth First Search (BFS)
Topological Sort
Strongly Connected Components
Week #08
Greedy Algorithms
Element of greedy strategy
Dijkstra
Prims
Kruskul
Week #09,10
Mid Term

Week #11
Single Source Shortest Paths
Bellman-Ford Algorithm
Week #12
Greedy Algorithms
Huffman codes
A task-scheduling problem

Week # 13:
Dynamic Programming
Elements of dynamic programming
All Pair shortest distance( Floyed Warshal)

Week # 14:
Dynamic Programming
Matrix-chain multiplication
Longest Common Subsequence

Week # 15:
String Matching
The naïve string-matching algorithm
The Rabin-Karp algorithm

Week # 16:
String Matching
String matching with finite automata
The Knuth-Morris-Pratt algorithm
Week # 17:
Hash Tables
Direct-address table
Hash tables
Hash functions
Week # 18:
Hash Tables
Open addressing
Perfect addressing
Red-Black Trees
Properties of red-black trees
Rotations
Insertions

Week # 19, 20:


Final Exam

You might also like