The book will survey old and new results in the area of extremal set system theory. It presents an overview of the main techniques and tools (shifting, the cycle method, profile polytopes, incidence matrices, combinatorial nullstellensatz, etc.) used in the different subtopics. Chapters of the book will be mostly independent. The topics covered and the tools used are related. In every chpater, we will privide the detailed proofs of the most important results and some fo the most recent ones, while the proofs of some other theorems will be posted as exercises with hints. At the end of every chapter we will gather many open problems that can be the subject of future research.