Computer Science 284/484
Advanced Algorithms
Spring 2018
Instructor: Daniel Stefankovic
Class: Tuesday, Thursday 12:30pm-13:45pm, Wilmot 116.
Instructor office hours (Wegmans 2315): Tuesday, Thursday 2pm - 3pm.
TAs:
Jackson Abascal, Zachary Polansky
Textbooks: there is no required textbook; see each section for the recommended reading (mostly online; I will also supply handouts).
Other resources/recommended reading (most on a 2 hour reserve in the library):
- [CLRS09] Introduction to Algorithms (3rd edition), T. Cormen, C. Leiserson, R. Rivest, and C. Stein, 2009.
- [K91] The Design and Analysis of Algorithms, D. Kozen, 1991.
- [KT05] Algorithm Design, J. Kleinberg and E. Tardos, 2005.
- [AHU74] The Design and Analysis of Computer Algorithms, A. Aho, J. Hopcroft, J. Ulman, 1974.
- [MU05] Probability and Computing: Randomized Algorithms and Probabilistic Analysis, M. Mitzenmacher, E. Upfal, 2005.
- [MR95] Randomized Algorithms, R. Motwani, P. Raghavan, 1995.
- [H02] Finite Markov chains and algorithmic applications, O. Häggström, 2002.
- [G97] Counting, sampling and integrating: algorithms and complexity, M. Jerrum, 2003.
- [WS11] The Design of Approximation Algorithms, D.Williamson, D. Shmoys, 2011
- [V04] Approximation Algorithms, V. Vazirani, 2004.
- [BE98] Online Computation and Competitive Analysis, A. Borodin, R. El-Yaniv, 1998.
- [M05] Data Streams: Algorithms and Applications, S. Muthukrishnan, 2005.
- [BCKO08] Computational Geometry: Algorithms and Applications, M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, 2008.
- [PS85] Computational Geometry: An Introduction, F. Preparata, M. Shamos, 1985.
- [M93] Computational Geometry: An Introduction Through Randomized Algorithms, K. Mulmuley, 1993.
- [G97] Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology, D. Gusfield, 1997.
Prerequisites: CSC282.
Schedule
TOPIC 1: Max-Flow
TOPIC 2: Linear Programming
TOPIC 3: Computational Geometry
Feb. 8 Th - Computational Geometry I (sweep technique)
Feb. 13 Tu - Computational Geometry II (convex hulls)
Feb. 15 Th - Computational Geometry III (closest pair of points)
Feb. 20 Tu - Computational Geometry IV (Voronoi diagrams)
homework 3 (computational geometry) - due Mar. 19
TOPIC 4: String Algorithms
Feb. 22 Th - String Algorithms I (Suffix Trees)
Feb. 27 Tu - String Algorithms II (Suffix Trees)
Mar. 1 Th - String Algorithms III (Suffix Arrays)
Mar. 6 Tu - String Algorithms IV (Suffix Arrays)
homework 4 (string algorithms) - due Apr. 2
TOPIC 5: Streaming Algorithms
reading:
Mar. 8 Th - Probability I
Mar. 13 Tu - SPRING BREAK
Mar. 15 Th - SPRING BREAK
Mar. 20 Tu - Probability II
Mar. 22 Th - Streaming Algorithms I (distinct elements)
Mar. 27 Tu - Streaming Algorithms II (sketching)
Mar. 29 Th - Streaming Algorithms III (frequency moments)
Apr. 3 Tu - Streaming Algorithms IV
homework 5 (streaming algorithms) - due Apr. 16
TOPIC 6: Markov chain Monte Carlo
reading:
Apr. 5 Th - MCMC I (basics: stationary distribution, detailed balance condition, ergodicity)
Apr. 10 Tu - MCMC II (mixing time)
Apr. 12 Th - MCMC III (bounds on mixing time)
Apr. 17 Tu - MCMC IV (coupling from the past)
homework 6 (MCMC) - due Apr. 30
TOPIC 7: Something Fun
Apr. 19 Th - TBD
Apr. 24 Tu - TBD
Apr. 26 Th - TBD
May. 1 Tu - TBD
Grading
The grade for the course is based on the homework (theoretical and applied); there are no exams.
Homework Rules
- Theoretical homework should be typeset (LaTeX preferred) and emailed to both TAs and the instructor by the deadline (specific for each assignment). You may work with other people on the theoretical homework, but you must each write up your solutions separately (without any written aid). If you work with other people, indicate who you worked with on your solution.
- Applied (implementation) homework should be submitted to the automatic grading system before the deadline (specific for each assignment). You must work alone on the applied (implementation) homework. Do not discuss the problem with anybody (except me), do not search for a solution online, do not use any written material when writing any part of the code (for example, no copy-paste, no open textbook when writing code, no reediting of an old source file from an old project, etc).
- No late homework will be accepted without instructor's permission (a permission must be requested at least 24 hours before the due date).
This course follows
The University Policy on Academic Honesty .