Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

University of South Asia - Faculty of Computer Sciences Course Outline Design and Analysis of Algorithms

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

University of South Asia --- Faculty of Computer Sciences

Course Outline
DESIGN AND ANALYSIS OF ALGORITHMS

Study Program: Semester 6 (BSCS 4 years)


Semester: Spring-2017
CS 3101 - DESIGN AND ANALYSIS OF
Course Code/Title: ALGORITHMS
Credit Hours: 3
Resource Person: Mr. Shahid Waseem
Sessions per week: 3
Pre-Requisites: Data Structures

INTRODUCTION

Efficient problem solving is the need of time and is being met; rather it is the center of attention of
technological research these days. Study of algorithms deals with efficient and economical problem solving
techniques. This course emphasizes algorithms as a technology and sheds light on the evolution of
algorithms over centuries and then gives a deeper look into the algorithm of modern era. It is now possible
to run complex operating systems and software packages on mobile devices with limited resources, using
efficient algorithms. Good algorithm designers are selected and offered top remuneration by software
development companies such as Google from any part of the world.

The course starts with the formal language to write pseudo-code for an algorithm. Many existing
algorithms’ pseudo-codes are described as we progress through the course. The analysis techniques
invented by Donald Knuth are then studied which are also carried throughout the course. Design paradigms
such as divide and conquer are presented along with many real life examples. The main problems of
Searching and Sorting are solved using several algorithms. The course is concluded with Graph algorithms
where searching and sorting is again solved using graphs.

Learning Outcomes
1. Understand the concepts and skills of algorithm design

2. Implement some well-known algorithms

3. Analyze the performance of algorithms

Page 1 of 4
MODULE BREAKDOWN

Part 1: Design Paradigms.


Part 2: Algorithm Analysis.
Part 3: Graph Algorithms.

Teaching Methodology

Lectures, Activity File, Class Taks, Exams

SCHEDULE FOR SESSIONS

Week Session Topic


Week 1 1. Course Overview
Part 1: Design Paradigms
2.
Review of proofing techniques, Induction
3. Review of Summations and Series, Algorithms Introduction
Week 2 Part 2: Algorithm Analysis
4.
Algorithms Analysis Principles
5. Asymptotic analysis, Practice examples/problems
6. Insertion sort analysis
Week 3 7. Bubble sort and Linear search Analysis
8. Big-Oh Notation, Numerical Examples
9. Big Omega and Theta, Numerical Examples
Week 4 10. O(n log n) Algorithm for Counting Inversions
11. Design Paradigms, Divide-and-conquer
12. Merge Sort Motivation, Example, Pseudo code
Week 5 13. Merge Sort Analysis
14. O(n log n) Algorithm for Closest Pair
15. Closest Pair Algorithm Comparison and Analysis
Week 6 16. Recurrences Introduction, Validation via Substitution
17. Solving Recurrences using Iterative Method
18. Recurrences using Tree Method
Week 7 19. Master's method for Recurrences and analysis
20. Quicksort algorithm, pseudocode, example
21. Analysis of Quicksort algorithm Quiz 1
Week 8 22. Comparison of Quicksort vs other algorithms
23. Randomized Quicksort
24. Probabilistic analysis of Randomized Quicksort
Week 9 25. PRE-MID REVIEW SESSION
26. MID-TERM EXAM
27. Graph Representations
Page 2 of 4
Week 10 28. Graphs and Minimum Cuts, Random Contraction Algorithm
29. Analysis of Contraction Algorithm, Counting Minimum Cuts
30. Graph Search – Overview
Week 11 31. Breadth-First Search (BFS) Basics
32. BFS and Shortest Paths
33. BFS and Undirected Connectivity
Week 12 34. Depth-First Search (DFS) Basics
35. Topological Sort
36. Computing Strongly Connected Components Algorithm
Week 13 Analysis of Computing Strongly Connected Components
37. Algorithm
Structure of the World Wide Web
38. MST Problem Definition
Prim_'s MST Algorithm
39.
Correctness Proof
Week 14 40. Kruskal's MST Algorithm
41. Correctness of Kruskal_'s Algorithm, Implementation
Single source shortest paths, Relaxation, Bellman-Ford
42.
algorithm
Week 15 43. Dijkstra's Shortest Path Algorithm, Analysis, Examples
44. Heaps Operations and Applications, Implementation Details
45. Heaps Analysis and examples, Priority Queues Quiz 2
Week 16 46. Balanced Search Trees, Operations and Applications
47. Dynamic programming
48. FINAL TERM PAPER
Week 17 49. Activity File Viva
50. Activity File Viva
51. Activity File Viva

EVALUATION PLAN

Class Mid Final Total


Activity File
Participation Term Term Marks
30 10 20 40 100

Page 3 of 4
RECOMMENDED TEXT:

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2001), Introduction to
Algorithms

REFEERENCE TEXT:

Algorithm Design by Éva Tardos, Jon Kleinberg


Integer Multiplication, Karatsuba Multiplication
Design Paradigms, Divide-and-conquer
Merge Sort Motivation, Example, Pseudo code
Merge Sort Analysis

Page 4 of 4

You might also like