Fourier analysis has been extremely useful in many areas of mathematics. In the last several decades, it has been used extensively in theoretical computer science. Higher-order Fourier analysis is an extension of the classical Fourier analysis, where one allows to generalize the "linear phases" to higher degree polynomials. It has emerged from the seminal proof of Gowers of Szemerédi's theorem with improved quantitative bounds, and has been developed since, chiefly by the number theory community. In parallel, it has found applications also in theoretical computer science, mostly in algebraic property testing, coding theory and complexity theory.The purpose of this book is to lay the foundations of higherorder Fourier analysis, aimed towards applications in theoretical computer science with a focus on algebraic property testing.