Text: J. Gallian Contemporary Abstract Algebra
Thanks to Mike Schwaber for pointing out an error in the solution to 8.34 !