This introduction to the theory of convex optimization algorithms presents a unified analysis of first-order optimization methods using the abstraction of monotone operators. The text empowers graduate students in mathematics, computer science, and engineering to choose and design the splitting methods best suited for a given problem.