This work develops a topological analogue of the classical Chern-Weil theory as a method for computing the characteristic classes of principal bundles whose structural group is not necessarily a Lie group, but only a cohomologically finite topological group. Substitutes for the tools of differential geometry, such as the connection and curvature forms, are taken from algebraic topology, using work of Adams, Brown, Eilenberg-Moore, Milgram, Milnor, and Stasheff. The result is a synthesis of the algebraic-topological and differential-geometric approaches to characteristic classes.In contrast to the first approach, specific cocycles are used, so as to highlight the influence of local geometry on global topology. In contrast to the second, calculations are carried out at the small scale rather than the infinitesimal; in fact, this work may be viewed as a systematic extension of the observation that curvature is the infinitesimal form of the defect in parallel translation around a rectangle. This book could be used as a text for an advanced graduate course in algebraic topology.