A first course in abstract algebra