This graduate level text is distinguished both by the range of topics and the novelty of the material it treats — more than half of the material in it has previously only appeared in research papers. The first half of this book introduces the characteristic and matchings polynomials of a graph. It is instructive to consider these polynomials together because they have a number of properties in common. The matchings polynomial has links with a number of problems in combinatorial enumeration, particularly some of the current work on the combinatorics of orthogonal polynomials. This connection is discussed at some length, and is also in part the stimulus for the inclusion of chapters on orthogonal polynomials and formal power series. Many of the properties of orthogonal polynomials are derived from properties of characteristic polynomials. The second half of the book introduces the theory of polynomial spaces, which provide easy access to a number of important results in design theory, coding theory and the theory of association schemes. This book should be of interest to second year graduate text/reference in mathematics.