# Lecture Diary

• January 14: Quick course overview, Big-O notation and how to apply it.
Big-O slides: (1-up) (4-up)
The Big-O Handout
• January 16: Arithmetic algorithms, working our way towards RSA.
Arithmetic Algs, 1: (1-up) (4-up)
• January 23: More arithmetic algorithms and RSA.
Arithmetic Algs, 1: (1-up) (4-up)   /   Arithmetic Algs, 2: (1-up) (4-up)
Code: rsa.hs
• January 28: RSA, a start at divide and conquer
Arithmetic Algs, 2: (1-up) 2 (4-up)   /   Divide and Conquer, 1: (1-up) (4-up)
Code: rsa.hs
• January 30: divide and conquer, FFT, quicksort
Divide and Conquer, 2: (1-up) (4-up)   /   Textbook Quicksort: (1-up) (4-up)
• February 4: quicksort, an engineered quicksort, a start at graphs
An engineered quicksort: (1-up) (4-up)   /   Graphs: (1-up) (4-up)
• February 6: Depth-first-search.
Graphs: (1-up) (4-up)
• February 11: Priority queue, breadth-first-search, paths in graphs
Priority Queues: (1-up) (4-up)   /   Paths in Graphs (1-up) (4-up)
• February 13: Breadth-first-search, Dijkstra's Algorithm
Paths in Graphs (1-up) (4-up)
• February 18, Bellman-Ford, A start at greedy algorithms
Paths in Graphs (1-up) (4-up)   /   Greedy Algorithms Part 1 (1-up) (4-up)
• February 20, Knapsack (version 1), Minimum spanning trees, Prim's algorithm
Greedy Algorithms Part 1 (1-up) (4-up)
• February 25, Kruskal's algorithm, Union-find, Huffman Encoding
Greedy Algorithms Part 1 (1-up) (4-up)   /   Greedy Algorithms Part 2 (1-up) (4-up)
• February 27, Midterm Exam 1