Announcements

Syllabus

Logistics: The instructor for this course is me, Professor Zlatin. We meet on Tuesdays and Thursdays from 1:15 - 2:30pm in Estella 1249. My office hours are on Mondays from 10 - 11am, Thursdays 2:40 - 4:00pm, and by appointment in Edmunds 223. I am happy to talk about the class, CS theory or whatever is on your mind. The best way to reach me is by email. There will also be a course Slack channel.

Course Description: Did you enjoy your first algorithms course and want to go deeper? Then this course is for you! We will cover a range of topics which have become fundamental tools in the design of modern algorithms. We begin by studying widely applicable network optimization problems. We will then go beyond the realm of exact algorithms and learn how to approach problems which are known to be intractable, or for which we only have partial information. The class will culminate in a course project.

This class has CS 140 as a prerequisite. It is also focused on algorithm design and analysis, not implementation. Please send me an email if you are considering enrolling and have any questions.

Deliverables: Most weeks, I will put out a set of exercises accompanying the material for that week. These will be graded for completion/effort and are there to help you learn. In addition, there will be four assignments in the course. These will typically consist of around four or five challenging problems which will test your understanding of the material and creative problem solving skills. Finally, there will be a course project and associated milestones. The grading breakdown is as follows:

Course Project: The final project will consist of a deep dive into some aspect of algorithms, as well as a presentation of your findings. There are two main directions you can take. One is to choose some algorithmic problem which we didn't get to cover in class (and there are many cool ones), learn about the motivation for the problem, the history, and state-of-the-art methods for its solution. The second option is to select some computational task or applied problem and implement one or more algorithms to solve it. How do different algorithms compare in theory and in practice in terms of speed, memory usage, quality of solution, or fairness?

I have compiled a list of good project choices here. Of course, this is your project so feel free to get creative! Students can work by themselves or form groups of up to two.

Resources: There are many useful resources from which to learn algorithms. Here are three: There are copies of both textbooks available by request in the library in Edmunds, and they are also available online.

Schedule

This is a tentative outline of our schedule, and will probably change. KT refers to the Kleinberg and Tardos book. --> --> -->
Date Topic Readings Due
Part 1 · Network Optimization
08/26Welcome to the courseslides Welcome survey
08/28Stable MatchingsKT 1.1, GS paper, slides
09/02Ford-Fulkerson, max-flow min-cut theoremKT 7.1, flow notes, FF demoExercise set 0
09/04Pseudo-polynomiality and faster flowsKT 7.3-7.4, flow notes #2, Push-Relabel
09/09Push-relabel, Image SegmentationKT 7.4, 7.10, Push-Relabel paper Exercise set 1
Part 2 · Combinatorial Optimization
Part 3 · Dealing with Intractability
10/14Fall break
10/16No class
Part 4 · Dealing with Uncertainty
Final Project Presentations
12/09In class 2:00 - 5:00pm

Policies

Please let me know as early as possible if you cannot attend class. If you want to meet outside of office hours, write me an email or come to my office - if I am there I will answer your questions. Any feedback, concerns, or suggestions are more than welcome. You can email me, come to my office or submit feedback through this anonymous form . If you need accommodations, please contact the Disability Coordinator on your home campus. The process for Pomona students is available here. If you feel overloaded with the amount of work for this course, or are feeling burned out, I encourage you to contact me so that we can address the concerns together. You are probably not alone in feeling that way, and I am here to help.

Exercises

These will be released over the course of the semester.

Assignments

These will be released over the course of the semester.