# "Complexity Theory" is when you only analyse the complexity between two algorithms # "Reduction" involves the actual Cook reduction between two problems # "Asymptotic Bound" involves analysis of the actual asymptotic runtime # "Approxmation" is related to "Coping with NP-Completeness", but the concept is introduced also in Greedy algorithms. # "Miscellaneous" involves questions that ask specific questions or those that ask students to design an algorithm that is does not have substantial tie to any course material fa21-1: Dynamic Programming, fa21-2a: Graph Theory, SCC, fa21-2b: Hashing, fa21-2c: Randomised Algorithms, fa21-2d: Divide and Conquer, FFT, fa21-2e: Asymptotic Bound, fa21-3: Complexity Theory, fa21-4: Greedy, fa21-5: Graph Theory, Shortest Paths, fa21-6: Graph Theory, MST, fa21-7: Complexity Theory, Reduction, fa21-8: Complexity Theory, Approximation, sp21-1a: Linear Programming, Zero-Sum Game, sp21-1b: Linear Programming, Zero-Sum Game, sp21-1c: Graph Theory, SCC, DFS, sp21-1d: Sketching and Streaming, sp21-1e: Complexity Theory, sp21-1f: Complexity Theory, sp21-1g: Hashing, sp21-1h: Complexity Theory, sp21-1i: Randomised Algorithms, sp21-2a: Graph Theory, SCC, DFS, sp21-2b: Randomised Algorithms, Miscellaneous, sp21-2c: MST, Asymptotic Bound, Miscellaneous, sp21-2d: Multiplicative Weights Update, sp21-2e: Graph Theory, MST, sp21-3: Dynamic Programming, sp21-4: Complexity Theory, Reduction, sp21-5: Complexity Theory, Reduction, Graph Theory, Network Flow, sp21-6: Graph Theory, Greedy, Approximation, fa20-1a: Graph Theory, Shortest Paths, fa20-1b: Graph Theory, MST, fa20-1c: Linear Programming, fa20-1d: Complexity Theory, fa20-1e: Complexity Theory, fa20-1f: Complexity Theory, fa20-2a: Multiplicative Weights Update, fa20-2b: Complexity Theory, Approximation, fa20-2c: Hashing, fa20-2d: Sketching and Streaming, fa20-2e: Divide and Conquer, FFT, fa20-3: Divide and Conquer, Greedy, fa20-4: Graph Theory, Dijkstra, Bellman-Ford, Linear Programming, fa20-5: Graph Theory, Miscellaneous, fa20-6: Reduction, fa20-7: Reduction, fa19-1: Graph Theory, SCC, DFS, fa19-2: Asymptotic Bound, fa19-3: Divide and Conquer, Miscellaneous, fa19-4: Graph Theory, DFS, fa19-5: Graph Theory, Shortest Paths, Dynamic Programming, Floyd-Warshall, fa19-6: Graph Theory, MST, fa19-7: Graph Theory, Network Flow, fa19-8: Graph Theory, MST, fa19-9: Linear Programming, Zero-Sum Game, fa19-10: Complexity Theory, fa19-11: Sketching and Streaming, fa19-12.1: Graph Theory, Network Flow, fa19-12.2: Graph Theory, Network Flow, fa19-12.3: Approximation, fa19-12.4: Graph Theory, MST, fa19-12.5: Graph Theory, MST, fa19-12.6: Graph Theory, Shortest Paths, fa19-12.7: Graph Theory, MST, fa19-13.1: Graph Theory, SCC, DFS, fa19-13.2: FFT, fa19-13.3: Reduction, Linear Programming, fa19-13.4: Hashing, fa19-13.5: Sketching and Streaming, fa19-13.6: Union Find, fa19-13.7: Shortest Paths, Dijkstra, fa19-13.8: Graph Theory, Miscellaneous, CS70, fa19-13.9: Graph Theory, SCC, fa19-13.10: Linear Programming, fa19-13.11: Knapsack Problem, Dynamic Programming, fa19-13.12: Multiplicative Weights Update, fa19-14: Reduction, fa19-15: Dynamic Programming, fa19-16: Dynamic Programming, fa19-17: Reduction, fa19-18: Hashing, Sketching and Streaming, Miscellaneous, fa19-19: Approximation, fa19-20: Multiplicative Weights Update, fa19-21: Reduction, Linear Programming, sp19-1: Linear Programming, Zero-Sum Game, sp19-2: Asymptotic Bound, sp19-3: Hashing, Sketching and Streaming, sp19-4: Graph Theory, Network Flow, sp19-5: Graph Theory, Network Flow, sp19-6: Dynamic Programming, sp19-7: Complexity Theory, sp19-8.1: Asymptotic Bound, Linear Programming, Simplex Algorithm, sp19-8.2: Graph Theory, DFS, sp19-8.3: Graph Theory, SCC, DFS, sp19-8.4: Graph Theory, MST, sp19-8.5: Graph Theory, BFS, sp19-8.6: Graph Theory, DFS, sp19-8.7: Complexity Theory, sp19-9.1: MST, sp19-9.2: FTRL, sp19-9.3: FTRL, sp19-9.4: Graph Theory, Complexity Theory, sp19-9.5: Graph Theory, Complexity Theory, sp19-9.6: Hashing, sp19-9.7: Greedy, HornSAT, sp19-9.8: Graph Theory, DFS, sp19-10: Approximation, sp19-11: Approximation, Linear Programming, sp19-12: Reduction, sp19-13: Dynamic Programming, sp19-14: Multiplicative Weights Update, Dynamic Programming: fa21-1, sp21-3, fa19-5, fa19-13.11, fa19-15, fa19-16, sp19-6, sp19-13, Graph Theory: fa21-2a, fa21-5, fa21-6, sp21-1c, sp21-2a, sp21-2e, sp21-5, sp21-6, fa20-1a, fa20-1b, fa20-4, fa20-5, fa19-1, fa19-4, fa19-5, fa19-6, fa19-7, fa19-8, fa19-12.1, fa19-12.2, fa19-12.4, fa19-12.5, fa19-12.6, fa19-12.7, fa19-13.1, fa19-13.8, fa19-13.9, sp19-4, sp19-5, sp19-8.2, sp19-8.3, sp19-8.4, sp19-8.5, sp19-8.6, sp19-9.4, sp19-9.5, sp19-9.8, SCC: fa21-2a, sp21-1c, sp21-2a, fa19-1, fa19-13.1, fa19-13.9, sp19-8.3, Hashing: fa21-2b, sp21-1g, fa20-2c, fa19-13.4, fa19-18, sp19-3, sp19-9.6, Randomised Algorithms: fa21-2c, sp21-1i, sp21-2b, Divide and Conquer: fa21-2d, fa20-2e, fa20-3, fa19-3, FFT: fa21-2d, fa20-2e, fa19-13.2, Asymptotic Bound: fa21-2e, sp21-2c, fa19-2, sp19-2, sp19-8.1, Complexity Theory: fa21-3, fa21-7, fa21-8, sp21-1e, sp21-1f, sp21-1h, sp21-4, sp21-5, fa20-1d, fa20-1e, fa20-1f, fa20-2b, fa19-10, sp19-7, sp19-8.7, sp19-9.4, sp19-9.5, Greedy: fa21-4, sp21-6, fa20-3, sp19-9.7, Shortest Paths: fa21-5, fa20-1a, fa19-5, fa19-12.6, fa19-13.7, MST: fa21-6, sp21-2c, sp21-2e, fa20-1b, fa19-6, fa19-8, fa19-12.4, fa19-12.5, fa19-12.7, sp19-8.4, sp19-9.1, Reduction: fa21-7, sp21-4, sp21-5, fa20-6, fa20-7, fa19-13.3, fa19-14, fa19-17, fa19-21, sp19-12, Approximation: fa21-8, sp21-6, fa20-2b, fa19-12.3, fa19-19, sp19-10, sp19-11, Linear Programming: sp21-1a, sp21-1b, fa20-1c, fa20-4, fa19-9, fa19-13.3, fa19-13.10, fa19-21, sp19-1, sp19-8.1, sp19-11, Zero-Sum Game: sp21-1a, sp21-1b, fa19-9, sp19-1, DFS: sp21-1c, sp21-2a, fa19-1, fa19-4, fa19-13.1, sp19-8.2, sp19-8.3, sp19-8.6, sp19-9.8, Sketching and Streaming: sp21-1d, fa20-2d, fa19-11, fa19-13.5, fa19-18, sp19-3, Miscellaneous: sp21-2b, sp21-2c, fa20-5, fa19-3, fa19-13.8, fa19-18, Multiplicative Weights Update: sp21-2d, fa20-2a, fa19-13.12, fa19-20, sp19-14, Network Flow: sp21-5, fa19-7, fa19-12.1, fa19-12.2, sp19-4, sp19-5, Dijkstra: fa20-4, fa19-13.7, Bellman-Ford: fa20-4, Floyd-Warshall: fa19-5, Union Find: fa19-13.6, CS70: fa19-13.8, Knapsack Problem: fa19-13.11, Simplex Algorithm: sp19-8.1, BFS: sp19-8.5, FTRL: sp19-9.2, sp19-9.3, HornSAT: sp19-9.7,