An Introduction To Abstract Algebra by Derek John Scott Robinson