DescriptionLet p=p_1...p_n and q=q_1...q_m be permutations. We say that p contains q as a pattern if there are indices 1 [less than]= i_1 [less than] ... [less than] i_m [less than]= n such that p_{i_j} [less than] p_{i_k} if and only if q_i [less than] q_k; otherwise, p avoids q. The study of pattern avoidance in permutations is well studied from a variety of perspectives. This thesis is concerned with two generalizations of this pattern avoidance problem. The first generalization is that of pattern avoidance in words (where p and q may have repeated letters). The second is that of barred permutation patterns (where p avoids q unless q is part of an instance of an even larger pattern in p). In both cases, we seek to find universal methods that count words (resp. permutations) avoiding a particular set of patterns, and automate these methods to achieve new enumeration results.