Enumeration, algorithms, and complexity in algebraic combinatorics