Algorithmic Combinatorics: Enumerative Combinatorics, Special Functions and Computer Algebra