Ob!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
The homework is due in class at the beginning of the first lecture
of the week following the week of assignment.
    
| Coordinates | 1.5 | 
| Description | Analyze the running time and space complexity of algorithms | 
| Source | Textboook Sect 2.1 http://en.wikipedia.org/wiki/Analysis_of_algorithms | 
| Slides | Objective-1.pdf | 
| Homework | Textbook Sect 2.1: 1abcf, 2ab, 6 | 
| Coordinates | 2.5 | 
| Description | Use the big Oh notation | 
| Source | Textboook Sect 2.2 http://en.wikipedia.org/wiki/Big_O_notation | 
| Slides | Objective-2.pdf | 
| Homework | Textbook Sect 2.2: 1abc, 2c, 5, 10ab | 
| Coordinates | 3.5 | 
| Description | Describe how to prove the correctness of an algorithm | 
| Source | http://en.wikipedia.org/wiki/Hoare_logic http://en.wikipedia.org/wiki/Loop_invariant http://dl.acm.org/citation.cfm?id=363259 | 
| Slides | n/a | 
| Homework | hmwk-3.pdf | 
| Coordinates | 4.10 | 
| Description | Use the mathematical techniques required to prove the time complexity of a program/algorithm | 
| Source | Textboook Sect 2.3, 2.4, (2.6) | 
| Slides | Objective-4.pdf | 
| Homework | Sect 2: 3.1abd, 3.4abcd 4.1ad, 4.2, 4.8ab | 
| Coordinates | 5.5 | 
| Description | Perform inductive proofs | 
| Source | http://en.wikipedia.org/wiki/Mathematical_induction | 
| Slides | n/a | 
| Homework | hmwk-5.txt | 
| Coordinates | 6.5 | 
| Description | Prove and apply the Master Theorem | 
| Source | Textbook Appendix B | 
| Slides | Objective-6.pdf | 
| Homework | hmwk-6.pdf | 
| Coordinates | 7.5 | 
| Description | Describe the notions of P, NP, NP-complete, and NP-hard | 
| Source | Textboook Sect 11.3 http://mathworld.wolfram.com/ComplexityTheory.html http://en.wikipedia.org/wiki/Computational_complexity_theory | 
| Slides | Objective-7.pdf | 
| Homework | Sect 11.3: 11.3.1, 11.3.3, 11.3.6 | 
| Coordinates | 8 | 
| Description | Compare the rates of growth of functions | 
| See | Objective 1 | 
| Coordinates | 9 | 
| Description | Apply algorithmic complexity principles in the design of programs | 
| See | Objective 10 | 
| Coordinates | 10.45 | 
| Description | Design divide and conquer and dynamic programming algorithms | 
| Source | Textboook Sect 5 (divide an conquer) Textboook Sect 8 (dynamic programming) http://en.wikipedia.org/wiki/Floyd-Warshall_algorithm Textboook Sect 9 (greedy algorithms) http://en.wikipedia.org/wiki/Prim%27s_algorithm http://en.wikipedia.org/wiki/Kruskal%27s_algorithm | 
| Slides | Objective-10-1.pdf Objective-10-2.pdf Objective-10-3.pdf | 
| Homework | Objective 10-1, Sect 5: 5.1.5abc, 5.1.10, 5.2.7a, 5.3.2, 5.3.5abc, 5.4.3ab Objective 10-1, Project 1 Objective 10-2, Sect 8: 8.1.2, 8.1.8, 8.2.4ab, 8.4.1, 8.4.3 Objective 10-2, Project 2 Objective 10-3, Sect 9: 9.1.1, 9.2.1, 9.3.2a | 
| Week | Objective | Description | Homework due | 
|---|---|---|---|
| 1 | 1 and 2 | Running time | |
| 2 | 10-1 | Divide and conquer | All homework of objectives 1 and 2 | 
| 3 | 4 | Math techinques | Mon. 10/8: Homework of objective 10-1, subsection 1, 2 and 3. Wed. 10/10: Complete homework of objective 10-1 and Project 1. | 
| 4 | 5 | Inductive proofs | All homework of objective 4 | 
| 5 | 10-2 | Dynamic progr. | All homework of objective 5 | 
| 6 | 6 | Master Th. | Mon. 10/29: Homework of objective 10-2, subsection 1 and 2. Wed. 10/31: Complete homework of objective 10-2 and Project 2. | 
| 7 | 10-3 | Greedy Alg. | All homework of objectives 6 | 
| 8 | 7 | P and NP | All homework of objective 10-3 | 
| 9 | 3 | Correctness | All homework of objective 7 | 
| 10 | review | All homework of objective 3 |