### Schedule

This schedule will be updated as the semester progresses.

Week 1 (Jan 25, 27):

Week 2 (Feb 2 , 4):

Week 3 (Feb 9 , 11):
• Topics: Analysis tools: Recurrences. Heaps.
• Notes: Heaps.pdf | e1
• Internet:
• Lab: Lab 2 (recurrences and heaps)
Week 4 (Feb 16 , 18):
• Topics: Heapsort. Quicksort.
• Notes: Quicksort.pdf | e1
• Internet:
• Lab: Lab 3 (quicksort, sorting)
Week 5 (Feb 23 , 25):
Week 6 (March 1, 3):
• Topics: Binary search trees and balanced BSTs.
Thu March 3rd: Exam 1 (covers everything up to and including linear time sorting)
• Notes: bst.pdf | rb.pdf
• Internet:
• Lab: Lab 5 (selection) (due March 10th)
Week 7 (March 8, 10):

SPRING BREAK

Week 8 (March 29, 31):

• Topics: Dynamic programming.
• Notes: BoardGame.pdf | Rod.pdf
• Internet:
• Lab: LCS (in-class) | Lab 7 (dynamic programming) (due Friday 4/8)

Week 9 (April 5, 7):

• Topics: Dynamic programming and greedy algorithms.
• Notes: Greedy.pdf
• Internet:
• Reading: CLRS 15.4, 16.1, 16.2
• Lab : Lab 8 (dynamic programming and greedy) (due Tuesday 4/19)

Week 10 (April 12, 14, 15):

• Topics: Graphs basics, BFS, DFS.
Thu April 14th: Exam 2 (covers selection, divide and conquer, dynamic programming ad greedy)
• Notes: Basics.pdf | BfsDfs.pdf | Applications.pdf
• Reading: CLRS 22.1 - 22.3
• Internet: Lecture slides by Kevin Wayne.

Week 11 (April 19, 21, 22):

Week 12 (April 26, 28, 29):

• Topics: Graphs: Minimum spanning tree (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) (due Fri 5/6)

Week 13 (May 3, 5, 6):

• Topics: Graphs: Single-source shortest paths (Bellman-Ford and Dijkstra's algorithms). Crash course into NP-completeness.
• Notes: sp.pdf
• Internet: Dijkstra demo by Kevin Wayne. | Lecture slides by Kevin Wayne.