Algorithms Spring 2021: Detailed schedule and links
This schedule may be slightly adjusted as the semester progresses in
order to reflect what actually happens in class.
Week 1: Introduction and warmup (bubble
sort, insertion sort, selection sort). Asymptotic analysis
basics.
- Notes: intro.pdf
- Lab: Lab 1
- Quiz: see Blackboard
- Assignment: see Blackboard
Week 2: Asymptotic notation and summations.
Week 3: Mergesort and recurrences.
Week 4: Heapsort and Quicksort.
Week 5: Sorting lower bound. Linear time
sorting. Selection.
Week 6: Problems.
- Notes: python-insertionSort.ipynb, python-mergeSort.ipynb, python-quickSort.ipynb
- Lab: Lab 6
- Quiz: see Blackboard
- Assignment: see Blackboard
Week 7: Divide-and-conquer.
Spring break!!
Week 8: Dynamic programming
Week 9: More DP examples. Greedy algorithms.
Week 10: Problems.
Week 11: Graphs: Basics. BFS and DFS. Topological
sort.
Week 12: Shortest paths (shortest paths on DAGs;
Dijkstra; Bellman-Ford).
Week 13: Minimum spanning tree (Prim and Kruskal)
- Notes: mst.pdf
- Lab: Lab 13
- Quiz: see Blackboard
- Assignment: see Blackboard
Week 14: Final review.