For the reading Selections: L=Levitin book, G=Goodrich book. For example L(1,3) means chapter 1,3 in the Levitin book. Week 0 What You are already supposed to know: Classes, Templates, STL, Generic programming, Containers, Container algorithms, Iteration. Linear Structures: Linked List, Vector/Array, Stack, Doubly Linked List. Circular List. Functions: Passing arguments by reference and value. Discrete Mathematics: Logic and Mathematical Reasoning, Order Analysis, Induction, Recursion, Counting, Probability Suggested Reading: G(1,2,3,4,5,App A); L(1,2,App A, App B); Week 1 (Aug 25-Aug 29) Introduction to course web page; Integrity agreement. Prerequisite self-test. Introduction to Data Structures and Algorithm Analysis. Project 1 handed out - Efficient Problem Solving and Analysis. Reading: G(3,App A); L(1,2,App A, App B); Week 2 (Sep 1-Sep 5) Review of Discrete Math. O notation, Induction, Proofs. Algorithm Analysis, Recursion and Induction. Reading: G(3,App A); L(1,2,App A, App B); Week 3 (Sep 8-Sep 12) Algorithm Analysis, continued. Quick Review of Linear Data Structures. Project 1 due. Project 2 Handed Out - Cryptography. Reading: G(4,5) Week 4 (Sep 15-Sep 19) Trees. Reading: G(6) Week 5 (Sep 22-Sep 26) Balanced Trees/Heaps Reading: G(9.1,9.2) Week 6 (Sep 29-Oct 3) Heaps/Hashing Project 2 Due. Project 3 Handed Out - Suffix Trees. Reading: G(7,8.2) Week 7 (Oct 6-Oct 10) Hashing / Text Processing Reading: G(11.1,11.2,11.3) Week 8 (Oct 13-Oct 17) Tuesday: No class (Monday schedule). Friday: Midterm Exam. Week 9 (Oct 20-Oct 24) Sorting Reading: G(10); L(3.1,4.1,4.2,5.1,7.1) Week 10 (Oct 27-Oct 31) Sorting / Selection Reading: G(8.2) Week 11 (Nov 3-Nov 7) Graphs and Graph Algorithms. Reading: G(12) Project 3 Due. Project 4 Handed Out - Maximum Flow. Week 12 (Nov 10-Nov 14) Graph Algorithms / Some NP Complete Problems Reading: L(10) Week 13 (Nov 17-Nov 21) General Algorithm Design: Brute force; Greedy; Divide and conquer; Reading: L(3,9) Week 14 (Nov 24-Nov 28) General Algorithm Design: Dynamic programming; Back Tracking Friday: No class (Thanksgiving) Reading: L(8) Week 15 (Dec 1-Dec 5) General Algorithm Design: Randomized Algorithms. Project 4 Due. Week 16 Final Exam Week, Final Exam.