This book is devoted to combinatorial aspects of the theory of symmetric functions. This rich, interesting and highly nontrivial part of algebraic combinatorics has numerous applications to algebraic geometry, topology, representation theory and other areas of mathematics. Along with classical material, such as Schur polynomials and Young diagrams, less standard subjects are also covered, including Schubert polynomials and Danilov-Koshevoy arrays. Requiring only standard prerequisites in algebra and discrete mathematics, the book will be accessible to undergraduate students and can serve as a basis for a semester-long course. It contains more than a hundred exercises of various difficulty, with hints and solutions. Primarily aimed at undergraduate and graduate students, it will also be of interest to anyone who wishes to learn more about modern algebraic combinatorics and its usage in other areas of mathematics.