Computer Science 284/484
Advanced Algorithms
Spring 2017
Instructor: Daniel Stefankovic
Class: Tuesday, Thursday 12:30pm-13:45pm, Wilmot 116.
Instructor office hours (CSB 620): Tuesday, Thursday 2:30pm-3:30pm, CSB 620, or by appointment.
TAs:
Xiangru Lian (CSB 725):
TA office hours (CSB 725): Monday, Wednesday 4:00pm-5:00pm or by appointment.
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.
- [G97] Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology, D. Gusfield, 1997.
Prerequisites: CSC282.
Schedule
TOPIC 1: Randomized algorithms introduction
Jan. 19 Th - Basics of probability theory I.
Jan. 24 Tu - Basics of probability theory II.
Jan. 26 Th - Monte Carlo
TOPIC 2: Streaming algorithms
Jan. 31 Tu - Distinct elements.
Feb. 2 Th - Sketching.
Feb. 7 Tu - Frequency moments.
TOPIC 3: Markov Chains
Feb. 9 Th - Random walks, cover time, hitting time.
Feb. 14 Tu - Markov chains I (basics: stationary distribution, detailed balance condition, ergodicity)
Feb. 16 Th - Markov chains II (mixing time)
Feb. 21 Tu - Markov chains III (bounds on mixing time)
Feb. 23 Th - Markov chains IV (coupling from the past)
Feb. 28 Tu - MIDTERM I (covering topics 1,2,3)
Mar. 2 Th - Markov chains V (coupling)
Mar. 7 Tu - Markov chains VI (canonical paths)
Mar. 9 Tu - Markov chains VI (annealing)
Mar. 14 Tu - SPRING BREAK
Mar. 16 Th - SPRING BREAK
TOPIC 4: Geometric algorithms
Mar. 21 Tu - Sweep technique (point segment intersection).
Mar. 23 Th - Convex hulls I.
Mar. 28 Tu - Convex hulls II.
Mar. 30 Th - Algebraic decision tree model.
TOPIC 5: String Algorithms
Apr. 4 Tu - String algorithms - introduction.
Apr. 6 Th - Suffix trees I.
Apr. 11 Tu - Suffix trees II.
Apr. 13 Th - Suffix arrays.
Apr. 18 Tu - MIDTERM II (covering topics 3,4,5)
TOPIC 6: Fun (not covered on exams)
Apr. 20 Th - TBD
Apr. 25 Tu - TBD
Apr. 27 Th - TBD
May. 2 Tu - TBD
Grading
The
grade for the course is the combination of the
exam grade (two midterms; no final) and the
homework grade (theoretical
and applied).
Homework Rules
- Theoretical homework is collected on the due date, before class.
- Applied (implementation) homework should be emailed to both TA and the instructor by the deadline (specific for each assignment).
- No late homework will be accepted without instructor's
permission (a permission must be requested at least 24 hours
before the due date).
- 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.
- 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).
Test Rules
- All tests are closed book. No text
or notes, no scratch paper allowed.
This course follows
The University Policy on Academic Honesty .