Peter J. Cameron Introduction to Algebra