MATH-410: Riemann surfacesThis course is an introduction to the theory of Riemann surfaces. Riemann surfaces naturally appear is mathematics in many different ways: as a result of analytic continuation, as quotients of complex
CS-550: Formal verificationWe introduce formal verification as an approach for developing highly reliable systems. Formal verification finds proofs that computer systems work under all relevant scenarios. We will learn how to u
CS-428: Interactive theorem provingA hands-on introduction to interactive theorem proving, computer-checked mathematics, compiler verification, proofs as programs, dependent types, and proof automation.
Come learn how to write compute
COM-501: Advanced cryptographyThis course reviews some failure cases in public-key cryptography. It introduces some cryptanalysis techniques. It also presents fundamentals in cryptography such as interactive proofs. Finally, it pr
MATH-502: Distribution and interpolation spacesThe goal of this course is to give an introduction to the theory of distributions and cover the fundamental results of Sobolev spaces including fractional spaces that appear in the interpolation theor
MATH-261: Discrete optimizationThis course is an introduction to linear and discrete optimization.
Warning: This is a mathematics course! While much of the course will be algorithmic in nature, you will still need to be able to p
MATH-476: Optimal transportThe first part is devoted to Monge and Kantorovitch problems, discussing the existence and the properties of the optimal plan. The second part introduces the Wasserstein distance on measures and devel