Randomized methods are widely used in the construction and analysis of algorithms, computational complexity theory, cryptography and in other areas of theoretical computer science. The aim of the course is to learn some of these methods and to demonstrate them on the interesting examples. The course contains lot of results from different areas of theoretical computer science, but the emphasis will be made on methods. Not all the results discussed in the course are probabilistic, the probability is sometimes used implicitly. We learn such concepts as the \( k \)-independent set of pairwise-independent hash functions, samplers, hitters, expanders, extractors, etc. The knowlege of the probability theory will be useful, although all necessary concepts and facts from the probability theory will be reminded.