Contemporary Abstract Algebra - Joseph A Gallian (Cengage, 2020)