Course Outline Fall-2014 DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF WAH, WAH CANTT Design and Analysis of Algorithms (CPS-518) Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Discrete Structure, Data Structures and Algorithms Course Description This course is to provide an introduction to the design and analysis of computer algorithms. The students will learn how to analyze the performance of computer algorithms, and programming techniques and data structures used in the writing of effective algorithms. We will discuss classic algorithm design strategies (e.g., divide-and-conquer, dynamic programming, greedy approaches), data structures (e.g., hash tables, binary search trees), classic problems (e.g., sorting, knapsack problem, scheduling, graph-related problems) and the classic algorithms to solve them. We will also analyze algorithm complexities. Objectives: Upon completion of this course, students will be able to do the following: Analyze the asymptotic performance of algorithms. Write rigorous correctness proofs for algorithms. Demonstrate a familiarity with major algorithms and data structures. Apply important algorithmic design paradigms and methods of analysis. Instructor: M.Tahir Email: tahir591@hotmail.com Class Schedule for BS 4th Section-C Lecture No 1 2 Day Monday Tuesday Time 10:00 To 11:30 10:30 To 11:30 Venue A-3 A-3 Textbooks: Required textbook: Introduction to Algorithms, 3rd Edition; Cormen, Leiserson, Rivest, and Stein; MIT Press, Boston, 2009. Algorithms in C++; Robert Sedgewick Algorithms 4/e by Robert Sedgewick and Kevin Wayne. Addison-Wesley Professional, 2011. Course Outline Fall-2014 Tentative lecture schedule Week Topic 1 2 3 4 6 7 8 10 11 12 13 14 15-16 Reading Introduction to Algorithms and its importance Ch 1,2 Basics, asymptotic notation Ch 3 Asymptotic notation Ch 3 Analyzing recursive algorithms - defining recurrence Ch 4 Analyzing recursive algorithms - recursion tree method Ch 4 Analyzing recursive algorithms - master theorem Ch 4 Analyzing recursive algorithms - substitution method Ch 4 Quick sort Ch 7 Heap sort & Priority queue Ch 6 Linear time sorting algorithms Ch 8 Order statistics Ch 9 Hash tables Ch 11 Red black trees Week 9 ……………………….Mid Term Exam Dynamic programming Ch 13 Dynamic Programming Ch 15 Dynamic Programming Ch 15 Greedy Algorithm Ch 16 Intro to graphs Ch 22 Minimum spanning tree Ch 22 Minimum spanning tree, Shortest paths Ch 22 Graph search, topological sort Ch 23 String matching Ch 32 P/NP Ch 34 Final review Final Term Exam Ch 15