


Course Description and Content The theory of the design and analysis of algorithms has traditionally focused on providing provable guarantees in the worst case. In many situations such guarantees are overly pessimistic or inadequate. For example, many caching algorithms achieve the same optimal worst case performance ratio but their practical performance can vary greatly. Another example is that of the simplex algorithm for linear programming that has a worst case exponential time complexity, but is very efficient in practice. In these cases, worstcase analysis is not adequate in predicting the real performance of an algorithm, and not adequate in prescribing which algorithm to use in practice. In this course, we will study alternatives to worstcase analysis that avoid the above pitfalls but are at the same time rigorous and robust. Topics include but are not limited to stochastic models, planted or stable solution models, averagecase analysis, parameterized analysis, and smoothed analysis. Prerequisites Students are required to have taken an ungraduate level algorithms and an undergraduate level computational complexity course (e.g. CS 577 and CS 520), and are expected to have a thorough understanding of basic algorithm design techniques, randomness, and basic complexity theory. Graduate level theory courses are a plus. If you have not taken the aforementioned courses but believe you have the necessary background for this course, please contact the instructor for permission. Textbooks There are no textbooks for this course. Reading material in the form of lecture notes, surveys, and research papers will be posted over time on Piazza. Students are expected to scribe lectures; These scribe notes will be made available on Piazza on a timely basis. Evaluation Course evaluation will be based on two homeworks, a project, scribe notes, and class participation. The homeworks are expected to be challenging. Collaboration will be allowed and encouraged, but solutions must be submitted individually. The project will involve selfstudying one or more papers related to the course topic, preparing a survey report, and giving a short presentation towards the end of the semester. Suggested topics and instructions for preparing your report will be announced at the beginning of the semester. Each student is also required to do their fair share of scribing lecture notes. Instructor: Prof. Shuchi Chawla Office Hours: By appointment and on Wednesdays 12 pm in CS 4373. Online Forum, Course Material, and Resources: We will use Piazza for all course related activity  discussions, announcements, sharing of resources, etc. Lecture notes, homework, and exams will also be posted there. Signup here. 