A first graduate course in abstract algebra. (2017)