Randomized methods are one of the key tools in computer science, clearly not limited to their best-known use in randomized algorithms. Our aims for this course are twofold:

(i) We shall give an introduction to the diverse applications of randomized methods in computer science.

- random graphs and social networks,
- liar games and guessing games (Mastermind) and their applications to noisy communication and privacy problems,
- epidemic algorithms building on the random gossip paradigm (nodes contact random neighbors to exchange information),
- randomized search heuristics, in particular, genetic algorithms.

(ii) Parallel to this, we shall develop a small, but powerful set of mathematical tools that suffice to understand most uses of randomness in computer science:

- the first moment method,
- the coupon collector theorem,
- simple Chernoff bounds,
- a number of tricks to deal with dependencies.

Requirements: The beauty of this field is that relatively simple uses of randomness yield surprisingly powerful results. In such, no deep probability theory prerequisites are needed. However, naturally, this topic does require the use of elementary discrete probabilities. So if you are afraid of statements like "if you roll a standard 6-sided die, then the expect result is 3.5" or "the expected number of die rolls until you see a "one" is 6", then you should not take this course.

A basic knowledge of algorithms and their analysis, e.g., as taught in INF421, is also helpful. Finally, this is not a mathematics course (by far not), but we use mathematical arguments to understand things. The course comes with PC given by the main teacher.

Evaluation mechanism: Written exam (2h).

Languange: The course language is English. In the exam, answers in English and French are equally accepted.