The Basics of Abstract Algebra