The complexity and correctness of algorithms: big oh,
big omega, and big theta notations, recurrence relations and their solutions. Worst, average and amortized analysis of
algorithms with examples. Basic and advanced data structures for searching, sorting, compression and graph algorithms.
Students will be given programming assignments on a regular basis.
Prerequisites:
Textbooks:
Class Materials:
Grading:
Policies:
Week  Date  Topics  Description  

1  January 18, 2011  Introduction  Chapters 13, Appendix AC Asymptotic Notation, Standard Notations, Common Functions, Summations 

2  January 25, 2011  Asymptotic Analysis  Chapter 4 Recurrences 

3  February 1, 2011  Sorting  Chapters 6, 7 Heaps, Heapsort, Priority Queues, Quicksort 

4  February 8, 2011  Sorting  Chapters 8, 9 Lower Bounds for Sorting, Counting Sort, Radix Sort, Bucket Sort, Medians and Order Statistics 

5  February 15, 2011  Probabilistic Analysis  Chapters 5, 7 Randomized Algorithms, Randomized Quicksort  
6  February 22, 2011  No class  Monday Schedule  
7  March 1, 2011  MIDTERM  Comprehensive  
8  March 8, 2011  Hashing  Chapter 11 Hashing, Collision Resolution 

9  March 15, 2011  No class  Spring Break  
10  March 22, 2011  Trees  Chapters 12, 13 Binary Search Trees, RedBlack Trees 

11  March 29, 2011  Dynamic Programming  Chapter 15 Dynamic Programming 

12  April 5, 2011  Greedy Algorithms, Amortized Analysis  Chapters 16, 17 Greedy Strategy, Huffman Codes, Aggregate Analysis 

13  April 12, 2011  Graphs  Chapter 22 Graph Algorithms, BreadthFirst Search, DepthFirst Search 

14  April 19, 2011  Multithreaded Algorithms  Chapter 27 Guest Lecture: W. Backes 

15  April 26, 2011  Graphs  Chapter 23 Spanning Trees, Kruskal's Algorithm, Prim's Algorithm 

16  May 3, 2011  Graphs  Chapter 24 Shortest Paths, BellmanFord Algorithm, Dijkstra's Algorithm 

May 10, 2011 BC 202, 610pm 
FINAL  Comprehensive 
Disclaimer:
This course syllabus is subject to change as deemed necessary and appropriate by the instructor.