Modern methods in extremal combinatorics