Groups are one of the most fundamental objects in mathematics. They arise everywhere, from snowflakes to particle physics. Most guides to groups start by considering them as a very abstract theoretical idea. This guide is different – we will start with a very concrete example, and consider being more abstract later.

This guide is also designed for people interested in computing with groups – we are going to introduce code early, and by the end of this guide you will know how the implement state of the art algorithms for many important problems on groups.

Many of the examples we use in this guide are going to be based on games and puzzles. Let’s begin with our first example!

This puzzle consists of six balls placed in two circles. The two circles can spin independantly. Here is a simple interactive version of our game!

1 2 3 4 5 6

Consider all the lists of moves we can perform in this game – we will show these are a group, and explain what a group is. A collection of moves are a if they satisfy three conditions. Actually, there are a few different, equivalent, ways of writing what a group is, we will give one here, and then discuss some others later.