# Course Schedule

Students are strongly encouraged to READ the related text book chapters/sections BEFORE the class.

 Jan Thu 26 Introduction ([1]: Chap 1 & 2 [2]: Chap 1) Tue 31 Induction ([1]: Chap 2) Feb Thu 2 Analysis of Algorithms and the O notation ([1]: Chap 3 [2]: Chap 2) Tue 7 Induction and Algorithms ([1]: Chap 2 & 5) Thu 9 Induction and Algorithms, cont'd ([1]: Chap 5) Tue 14 Recurrence relations ([1]: Sec 3.5) Thu 16 Akra-Bazzi (Master) Theorem ([1]: Sec 3.5.2) Tue 21 Introduction to Data Structures: Array, Linked List ([1]: Sec 4.2 [2]: Sec 2.5) Thu 23 Binary Search and Applications ([1]: Sec 6.2) Tue 28 Sorting: Insertion Sort, Selection Sorts, Merge Sort ([1]: Sec 6.4) Mar Thu 1 MidTerm 1 Tue 6 Sorting: Bucket Sort and Radix Sort ([1]: Sec 6.4) Thu 8 Quicksort ([1]: Sec 6.4.4) Tue 13 Hashing ([1]: Sec 4.4) Thu 15 Introduction to Graph Theory ([1]: Sec 7.1 [2]: Sec 3.1 & 3.2) Tue 20 Spring Break Thu 22 Spring Break Tue 27 Trees and Binary Search Trees ([1]: Sec 4.3 & 6.2) Thu 29 Heap and Heapsort ([1]: Sec 4.3.2 & 6.4.5) Apr Tue 3 Greedy Algorithms ([1]: Sec 5.10 [2]: Chap 4) Thu 5 Dynamic Programming ([1]: Sec 5.10 [2]: Chap 6) Tue 10 MidTerm 2 Thu 12 DFS, BFS ([1]: Sec 7.3.1 & 7.3.2 [2]: Sec 3.3 & 3.4) Tue 17 DAGS and Topological Sorting ([1]: Sec 7.4 [2]: Sec 3.5 & 3.6) Thu 19 Single-Source Shortest Path ([1]: Sec 7.5 [2]: Sec 4.4) Tue 24 All-pair Shortest Path ([1]: Sec 7.7 [2]: Sec 6.8) Thu 26 Min. Spanning Tree ([1]: Sec 7.6 [2]: Sec 4.5) and the Concept of NP ([1]: Chap 11 [2]: Sec 8.1) May Tue 1 scribe notes Reduction and NP Completeness ([1]: Chap 11 [2]: Chap 8) Thu 3 scribe notes NP Completeness, cont'd ([1]: Chap 11 [2]: Chap 8) Tue 8 Parallel Algorithms ([1]: Chap 12) Thu 10 Parallel Algorithms and Map Reduce Tue 15 Final Exam

[1] Intoduction to Algorithms - A Creative Approach

[2] Algorithm Design