- Some programming notations.
- Discrete Math Review alg-co-co-notes-000-discrete-math-review

- Reading: Proof Outline Logic (part 0)
- Gapped notes 1 on proof outlines. alg-co-co-notes-010-proof-outlines
- Some minor changes uploaded Sept 17th, 2017.

- Notes 1.5 on improving the rules to prevent errors alg-co-co-notes-015-improving-our-rules
- Gapped notes 2 on summing an array alg-co-co-notes-020-summing-an-array
- Notes 3 on binary search of an array alg-co-co-notes-030-binary-search
- Notes 4. Iteration checklist and finding invariants. Slide set 4

- Notes 5. Data refinement. Slide set 5
- Notes 6. Object invariants and class refinement Slide set 6

- Notes 7. More examples of object invariants and class refinement Slide set 7
- Dafny Notes 0. Verification of methods. Dafny Notes 0.
- Dafny Notes 1. Functions, predicates, and lemmas. Dafny Notes 1.
- Dafny Notes 2. Arrays, sequences, and side effects. Dafny Notes 2.

- Reading: Chapters 2 (especially 2.3) and 7.
- Notes 8.0. Procedure specification and recursion. Slide set 8.0
- [Optional Notes 8.3. Tail call optimization and eliminating arbitrary recursion. Optional slide set 8.3.]
- Notes 8.5. Top-down and bottom-up algorithms. Slide set 8.5
- Notes 9.0 Designing loops by reasoning recursively alg-co-co-notes-090-loops-as-recursion
- Notes 10.0. Languages and Grammars alg-co-co-notes-100-cfgs
- Notes 10.5. Recursive-Descent Parsing alg-co-co-notes-105-parsing

- Reading Chapters 3, 7, 8
- Notes 11. Time Complexity alg-co-co-notes-110-complexity
- Notes 12. Lower Bounds and the complexity of sorting. alg-co-co-notes-120-more-complexity

- Reading: Chapters 22 and 24 (especially 24.3)
- Notes 13. Graph search alg-co-co-notes-130-graph-search
- Algorithms Animated(Give it some time to load the TM and be sure to answer all security quetions before clicking on Run.)
- Notes 14 [Not covered] A*alg-co-co-notes-140-a-star
- Notes 15. Depth-first search and Kosaraju's strongly connected components algorithm. alg-co-co-notes-150-more-graph-searching

- Reading: Chapters 15 and 16.
- Notes 16. Greedy Algorithmsalg-co-co-notes-160-greedy-algorithms
- Notes 17 Recursive search of optimal solutions. alg-co-co-notes-170-recursive-search
- Notes 18 Dynamic Programming alg-co-co-notes-180-dynamic-programming

- Reading: Chapter 34
- Notes 19: Intractability alg-co-co-notes-190-intractability
- Notes 20 Uncomputability alg-co-co-notes-200-incomputabilty

- Summary for units 1 and 2.alg-co-co-notes-210-summary

(c) Theodore Norvell