0% found this document useful (0 votes)
12 views

Analysis of Algorithms

deep analysis of algorithams

Uploaded by

Shan Ali5656
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Analysis of Algorithms

deep analysis of algorithams

Uploaded by

Shan Ali5656
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

University of Management and Technology

Course Outline
Course code: SE310, CS3044, X1511

Course title: Analysis of Algorithms/Fundamental of algorithms

Program BSSE, BSCS, MCS

Credit Hours 3

Duration 3 hours

Prerequisites Data Structures and Algorithm

Resource Person Muhammad Junaid

Counseling Timing Monday - Friday (10:00AM – 01:00PM), Room# 18

(Room# )

Contact 03446235552

Chairman/Director signature………………………………….

Dean’s signature…………………………… Date………………………………………….


Learning Objective:
Course Outline Page 1
This course presents design techniques for developing efficient algorithms. Students will
explore several classes of algorithms with respect to the underlying data structures, the
design method, and application orientation. The course will end by making the students
knowledgeable in techniques of developing efficient algorithms.

At the end of the course the students will be able to:

1. Explain what is meant by “best”, “expected”, and “worst” case behavior of an


algorithm

2. Identify the characteristics of data and/or other conditions or assumptions that lead
to different behaviors.

3. Determine informally the time and space complexity of simple algorithms

4. List and contrast standard complexity classes

5. Use big O, Omega, Theta notation formally to give asymptotic upper bounds on time
and space complexity of algorithms

6. Use of the strategies (brute-force, greedy, divide-and conquer, and dynamic


programming) to solve an appropriate problem

7. Solve problems using graph algorithms, including single source and all-pairs
shortest paths, and at least one minimum spanning tree algorithm

8. Trace and/or implement a string-matching algorithm

Learning Methodology:
Lecturing, Written Assignments, Project, Report Writing.

Moreover, learning objectives will be accomplished through theoretical and practical tasks
during the class. However, students are encouraged for maximum class participation.

Grade Evaluation Criteria

Course Outline Page 2


Following is the criteria for the distribution of marks to evaluate final grade in
a semester.

Marks Evaluation Marks in


percentage
Quizzes 10%
Assignments 10%
Mid Term 25%
Attendance & Class Participation 5%
Term Project 10%
Presentations 5%
Final exam 35%
Total 100%

Recommended Text Books:


1. Introduction to Algorithms by Thomas H. Cormen, 3rd Edition

Reference Books:
1. Introduction to the Design and Analysis of Algorithm by Anany V. Levitin

2. Algorithm Design by Jon Kleinberg, Eva Tardos, 1st Edition

Calendar of Course contents to be covered during semester

Course Outline Page 3


Course code: SE310, CS3044, X1511
Course title: Analysis of Algorithms/Fundamental of algorithms

Week Course Contents Reference Chapter(s)

What is an algorithm? Chapter 1


Why study algorithm?
Role of algorithms in computing
1 Implementation of algorithms and technology
Expressing an algorithm
Pseudocode conventions
Complexity of an Algorithms
What is analysis of an algorithm? Chapter 3
Factors affecting analysis
What is Worst/Average/Best cases of an algorithm
Asymptotic analysis
2 Big-O, Theta and Omega notations and definitions
Asymptotic trends illustrated with graphs
How to find the time complexity of the algorithm?
3-4 examples
Sorting algorithms and their analysis Chapter 2
• Selection Sort
3 • Bubble sort
• Insertion sort
What is loop invariant? Chapter 2
3-4 examples
What is recursion?
Recurrences and their relation to Divide and Conquer
4 algorithms
Solving recurrence relation (decreasing functions)
• 2-3 examples
Solving recurrence relation (dividing functions)
2-3 examples
Preparing for Quick Sort: Concept of a Pivot and Partition Chapter 4,7
Quick Sort algorithm
5 Best, Worst and Average cases of Quick Sort
Merge sort algorithm
Working of merge sort
Best, Worst and Average cases of Merge Sort
Shifting the approach: Linear Time Sorting Chapter 8
• Counting Sort and analysis
6 • Bucket Sort and analysis
• Radix Sort and analysis
Shifting the approach: Greedy algorithms Chapter 16
Example: Fractional Knapsack problem and solution
7 Example: Shortest job first problem
Example: Huffman codes

Course Outline Page 4


8 Revision

Shifting the approach: Dynamic Programming Chapter 15


• Rod cutting
9 • Matrix-chain multiplication
Elements of dynamic programming
What is Tree? Chapter 12, 23
Types of tree
What is a binary Search Tree (BST)?
Querying a BST
10 Insertion and deletion in a BST
Randomly built binary search trees
Growing a minimum spanning tree
The algorithms of Kruskal and Prim
What is Heap Chapter 6, 11
Maintaining the heap property
11 Building a heap
The heapsort algorithm
Hash tables
Hash functions
Graphs Chapter 22
Representing graphs
Common types of graphs
• Simple/Multi/Pseudo
12 • Directed/Undirected
• Weighted/Unweighted
Breadth-First Search
Depth-first Search
Single-Source Shortest Paths Chapter 24, 25
The Bellman-Ford algorithm
13 Dijkstra’s algorithm
Shortest paths and matrix multiplication
The Floyd-Warshall algorithm
Johnson’s algorithm for sparse graphs
String matching Chapter 32
The naive string-matching algorithm
14 The Rabin-Karp algorithm
String matching with finite automata
The Knuth-Morris-Pratt algorithm
Introduction to complexity classes Chapter 34
Polynomial time
15 Polynomial-time verification
NP-completeness and reducibility
NP-complete problems
Revision

Course Outline Page 5

You might also like