Course Web Page
Contact Info for Instructor, office hours, assignments and general information is all on the course
This course will cover topics in Geometric and Probabilistic methods in Computer Science, with an eye towards interesting, modern applications of these tools.
Text: We will use several sources in this class, including the following:
What you should know
You should have a basic familiarity with algorithms and data structures as from a class such as CS362, CS561 or equivalent. You should also have a certain mathematical maturity and familiarity with proof techniques similar to what would be covered in a advanced
undergraduate mathematics class. Students completing CS362, CS561, CS530 or CS500 should be well-prepared for the class. If you haven't taken any of these classes and are still interested, please come talk to me.
Topics we cover will likely include some subset of the following:
This class will be fairly student-driven so there is the possibility of covering other topics. Grading will be based on
participation and a class project, with some (likely ungraded)
homeworks to practice concepts in the class.
- Classic Problems in Computational Geometry: Convex Hull, Voronoi diagrams, Duality
- Multiplicative Weights Update (MWU) Method
- Linear Programming and Applications (solving LP via MWU)
- Applications of MWU to Machine Learning (Adaboost)
- Vector Spaces and Applications, particularly to coding theory
- Convex Optimization and Gradient Descent
- Higher Dimensional Spaces and Dimension Reduction (Johnson-Lindenstraus and SVD projections)
- Randomization in closest point queries, with connections to PAC learning and VC dimensions
- Randomized distributed algorithms: Maximal Independent Set,
Byzantine consensus, Leader Election
- Geometric Methods for Error-correcting codes
- Geometric Methods for Robotics and motion planning
- Homeworks 40% (3)
- Class Project, 40%
- General Participation, 20%.