Computing Brauer characters of a finite group I am studying character theory from the book "Character Theory of Finite Groups" by Martin Isaac. (I am not too familiar with valuations and algebraic number theory.)
In the last chapter on modular representation theory, Brauer characters, blocks, and defect groups are introduced. 
My question is this: How do we find the irreducible Brauer characters and blocks, given a group and a prime?
For instance, let's say we have $p=3$ and the group $G = S_5$, the symmetric group.
An example of the precise calculation or method used to determine the characters would be very helpful. Thanks.
 A: This is a difficult question and you would probably need to learn more theory in order to understand the different methods available.
But one method that is often used in practice is to calculate the representations and then just find the Brauer character directly from the matrices of the representations. Of course, you have to express the traces of the matrices as sums of roots of unity over the finite field, and then lift this sum to the complex numbers to get the Brauer character, but that is not particularly difficult. (That is not completely true - since the lifting is not uniquely defined, you may have to work hard if you want to make it consistent.)
With ordinary (complex) character tables, it is generally much easier to calculate the characters than the matrices that define the representations, but that is not always the case with modular representations. There are fast algorithms for computing representations over finite fields, using the so-called MeatAxe algorithm.
I am more familiar with Magma than with GAP, and I expect there are similar commands in GAP, but in Magma I can just type
> G := Sym(5);
> I := AbsolutelyIrreducibleModules(G, GF(3));

and I get the five absolutely irreducible representations in characteristic three as group homomorphisms, and so I can just look at the images of elements from the different conjugacy classes. There is a Magma command that does this for you, giving the Brauer character table:
> [BrauerCharacter(i): i in I];
[
    ( 1, 1, 1, 0, 1, 1, 0 ),
    ( 1, -1, 1, 0, -1, 1, 0 ),
    ( 4, 2, 0, 0, 0, -1, 0 ),
    ( 4, -2, 0, 0, 0, -1, 0 ),
    ( 6, 0, -2, 0, 0, 1, 0 )
]

