### Schedule

This schedule may be slightly adjusted as the semester progresses in order to reflect what actually happens in class.

Week 1 (Aug 31, Sept 5, 7, 8):

Week 2 (Sept 12, 14, 15):

Week 3 (Sept 19, 21, 22):
Week 4 (Sept 26, 28, 29):
• Topics : Sorting lower bound. Sorting in linear time.
• Notes : sortLB.pdf | ex | linsort.pdf
• Internet:
• Lab: Lab 4 (Fri Sept 29, sorting)

Week 5 (Oct 3):

• Topics : Selection.Wrapping up sorting.
• Notes : Selection.pdf | ex
• Internet:
• Lab: (Q&A in view of exam1)

Class on 10/5 and lab on 10/6 are cancelled. Study groups and TA hours at the regular times for Q&A re. exam1.

Tue Oct 10: fall break!!

Week 6 (Oct 12, 13):

• Thu Oct 12 (in-class): Exam 1 (covers everything up to and including linear-time sorting)
• Lab: Lab 5 (Fri Oct 13, selection)
• Fri 10/13: Selection. Notes : Selection.pdf

Week 7 (Oct 17, 19, 20):

• Topics: Selection in worst-case linear time. The divide-and-conquer technique: (Karatsuba's integer multiplication, Strassen, maximum partial sum).
Lab5 is due on Tuesday 10/24
• Notes: Strassen.pdf | Max-subarray.pdf
• Lab: selection exercises | Lab 6 (Oct 20, divide-and-conquer)

Week 8 (Oct 24, 26, 27):

• Topics: Dynamic programming.
• Notes: BoardGame.pdf | Rod.pdf
• Internet:
• Lab: Lab 7 (dynamic programming)

Week 9 (Oct 31, Nov 2, 3):

Week 10 (Nov 7, 9, 10):

• Topics: Graphs: graph basics and traversals (BFS, DFS). Traversal applications. Topological sort.
• Notes: Basics.pdf | BfsDfs.pdf | traversal-applications.pdf | topsort.pdf
• Internet: Lecture slides by Kevin Wayne.
• Reading: CLRS 22.1 - 22.3
• Lab: Exam 2 (emphasis on selection, divide and conquer and dynamic programming and greedy).

Week 11 (Nov 14, 16, 17):

• Topics: Shortest paths: SP in DAGs. Bellman-Ford and Dijkstra's algorithms.
• Notes: shpaths.pdf
• Internet: Dijkstra demo by Kevin Wayne.
• Reading: CLRS 24.1, 24.2, 24.3
• Lab: Lab 9 (graphs I, due Fri Dec 1)
Thanksgiving break!!

Week 12, 13 (Nov 21, 28, 30, Dec 1)

• Topics: Minimum spanning trees (Kruskal and Prim's algorithms). Union-find structure.
• Notes: MST.pdf
• Internet: Lecture slides | Kruskal demo | Prim demo by Kevin Wayne
• Lab: Lab 10 (graphs II) (due Friday Dec 8)

Week 14: (Dec 5, 7, 8)

• Topics: Strongly connected components in linear time.
Review and algorithmic questions from technical interviews.
• Notes: scc.pdf | review.pdf
• Internet:

Exam 3: Dec 18 at 9am in Searles 126 (emphasis on graphs).

Additional: (stuff we did not have time to cover)

• Binary search trees (review) and Red-black trees: bst.pdf | rb.pdf
• Augmented RB trees.
• Skip lists: skiplists.pdf
• More DP: Longest common subsequence (LCS): LCS
• Strongly connected components in linear time: scc.pdf
• Tries and string algorithms
• NP-completeness:
• e.g. Lecture slides by Kevin Wayne | Reading CLRS 22.4