Learning Permutation Group Theory via Puzzles