Introduces the process of abstraction, studies two elementary structures on sets, and covers the necessary generalities concerning algebraic structures. Presents powerful abstract mathematical concepts from algebra and combinatorics, supported by concrete applications. All background material is provided, including elements of logic, set theory, abstract algebra, linear algebra, and graph theory. Each chapter develops a new mathematical concept, then shows how to apply it. Includes numerous end-of-chapter problems and exercises.