A Concrete Approach to Abstract Algebra