Applied abstract algebra