Introduces the universal-algebraic approach to the complexity classification of constraint satisfaction problems in the finite and infinite-domain cases. Including background material from logic, topology, and combinatorics, it is suitable for graduate students and researchers in theoretical computer science and adjacent areas of mathematics.