Groups are a means of classification, via the group action on a set, but also the object of a classification. How many groups of a given type are there, and how can they be described? Hölders program for attacking this problem in the case of finite groups is a sort of leitmotiv throughout the text. Infinite groups are also considered, with particular attention to logical and decision problems. Abelian, nilpotent and solvable groups are studied both in the finite and infinite case. Permutation groups and are treated in detail; their relationship with Galois theory is often taken into account. The last two chapters deal with the representation theory of finite group and the cohomology theory of groups; the latter with special emphasis on the extension problem. The sections are followed by exercises; hints to the solution are given, and for most of them a complete solution is provided.