GAP teaching materials and software packages written by Peter Webb

Indonesian translation courtesy of Jordan Silaen at
Portuguese translation courtesy of Artur Weber at
Hindi translation courtesy of Nikol.
Hungarian translation courtesy of Szabolcs Csintalan
Ukrainian translation completed by

Teaching materials

Several times I have taught the use of GAP as part of a graduate level group theory course in which I also explain some of the algorithms. I do this during 50 minute sessions held each week in a computer lab, over about 8 weeks. The format is that each member of the class sits at a computer and is presented with a list of GAP commands together with a small amount of commentary. At my direction they work through these commands and observe what happens. At key points we stop to discuss what has happened. I introduce the necessary background theory as it is needed.

Here are the GAP Lessons which are presented to the students:
1 2 3 4 5 6 Coset enumeration
In lesson 2 a file Conway is used, and in lesson 6 we use the file lesson6code.
Lesson 6 requires a handout on Stabilizer Theory.

The class hands in homework, some of which is specific to GAP. Here are the homework questions from 2003.

If you use these teaching materials, please do send a brief note of this to
It helps me if I can say that my work has been used.

GAP software packages

For quite a long time I have been developing GAP code to handle representations and cohomology, of groups and more generally of categories.

If you use this software, please do send a brief note to me at
As with the teaching materials, it helps me if I can say that my work has been used.

The GAP package 'reps' for handling representations of groups and categories in positive characteristic

Download the package reps for handling representations of groups and categories.

In March 2020 there was a major new release of the former packages reps and catreps in which they are combined as one. The code of these former packages is still available at groupreps (the new name for the former reps) and catreps, but it will no longer be supported. The new package reps combines the functions of both of these, and it is recommended to use this new reps from now on.

The commands in this package allow you to construct and break apart representations of both groups and categories, finding their indecomposable summands and submodule structure. The algorithms of the meataxe for group representations are included and used where appropriate, but the overall philosophy is a little different from the meataxe. Methods based on taking fixed points are widely used.

To get started, first read the relevant tutorial (download below). There is a tutorial for group representations, and another tutorial for category representations. These will tell you what the package will do and how to do it, and also provide sample calculations.
Tutorial on group representation functions in the package 'reps'.
Tutorial on category representation functions in the package 'reps'.
To learn about representations of groups, read my book A Course in Finite Group Representation Theory.
To learn about representations of categories, read my Introduction to representations and cohomology of categories.
To run the package 'reps', download the file of routines (below) and read it in at the start of your GAP session. Do let me know if you have problems.

Download the package reps for handling representations of groups and categories.

Nerves of Categories

The code presented here computes the (co)homology of nerves of categories. Regarding a group as a category, we obtain the usual group cohomology, but the routines presented here are not efficient for this. Regarding a poset as a category we get the homology of the order complex. Every simplicial complex may be given up to homeomorphism in this fashion. Read the tutorial before going to the routines.

Tutorial on nerves of categories.
Download the package to handle nerves of categories.

Peter Webb also has a fast algorithm to compute a minimal resolution of the trivial module for a p-group in characteristic p. At the moment it is still in a process of development.

Symmetric Group Representations