This course intends to present and explore various combinatorial techniques of great potential in present research in the areas of group and semigroup theory, with particular incidence in the use of geometric methods and graph-theoretic and automata-theoretic tools.