  In this survey of graph polynomials, we emphasize the Tutte polynomial and a
selection of closely related graph polynomials. We explore some of the Tutte
polynomial's many properties and applications and we use the Tutte polynomial
to showcase a variety of principles and techniques for graph polynomials in
general. These include several ways in which a graph polynomial may be defined
and methods for extracting combinatorial information and algebraic properties
from a graph polynomial. We also use the Tutte polynomial to demonstrate how
graph polynomials may be both specialized and generalized, and how they can
encode information relevant to physical applications. We conclude with a brief
discussion of computational complexity considerations.
