Algebra has a long history of important applications throughout mathematics, science and engineering, and is also studied for its intrinsic beauty. In this subject we study the algebraic laws satisfied by familiar objects such as integers, polynomials and matrices. This abstraction simplifies and unifies our understanding of these structures and enables us to apply our results to interesting new cases. Students will gain further experience with abstract algebraic concepts and methods. General structural results are proved and algorithms developed to determine the invariants they describe.