This course covers recent theoretical and algorithmic developments in combi-natorics. It begins with an overview of classical probabilistic methods such as first- and second-moment methods and the local lemma, and of some funda-mental notions and results in extremal combinatorics, such as set systems, graph partitions, and Turán-type problems. The courses then moves on to give an in-depth treatment of the following topics at the cutting-edge of research:the Moser-Tardos algorithm, and derandomization of probabilistic algo-rithms more generally; recent improvements to the Sunflower Lemma and their application to com-puter science and the study of random graphs; the method of Hypergraph Containers and its applications; Vapnik-Chervonenkis dimension and its applications to statistical learning and computational geometry.