Algorithms for exhaustively listing discrete structures, combinatorial Gray codes, Venn and Euler diagrams, combinatorics on words, enumerative combinatorics.