Applied abstract Algebra