CS450:  Algorithms II (Autumn 2023)
   |  
  Credits | 
  8 | 
 
 
   |  
  Lecturer | 
  
  Ola Svensson | 
  
   |  
  Schedule | 
  Lectures: Thursdays 8-10 in CM13 and Fridays 8-10 in CO3.
   Exercises: Fridays 10-12  in  CM012, CM1120 and CM1221.
    Office hours: Thursdays 15-16 in BC02, BC03, BC04 
   | 
A first graduate course in algorithms, this course assumes minimal background but moves rapidly.
The objective is to learn the main techniques of algorithm design and analysis while
building a repertory of basic algorithmic solutions to problems in many domains.
This is a course for Master students. Lectures will be in English.
For more details see the official coursebook.
Important dates
  - Mid-term exam: Nov 3
 
  - Final exam: during exam session (exact date TBD)
 
Topics
A preliminary list of topics:
  - When and why do greedy algorithms work? Matroids and matroid intersection.
 
  - Convex programming for discrete optimization: linear programming (extreme point structure, duality) and semidefinite programming.
 
  - Approximation algorithms (tradeoff between time and solution quality).
 
  - Simplex method, ellipsoid method, gradient descent, and multiplicative weight update method.
 
  - Submodular function optimization: polynomial-time minimization and approximate maximization.
 
  - Online algorithms (tradeoff between knowledge about future and solution quality).
 
  - Streaming algorithms (tradeoff between knowledge about future and solution quality).
 
  - Randomized algorithms (hashing, power of two choices, Karger's min-cut algorithm).
 
  - Spectral graph theory (random walks, Cheeger's inequality)
 
Reading
The detailed schedule, lecture notes, and additional links to material is on the 
course moodle.
Mid-term and Final Exam
You can use a single 
hand-written  A4-page on which you can write anything on both sides. (No magnifying glasses allowed!)
Grading
Grades will be based on two homeworks [30%], the midterm [30%], and the final exam [40%].