The universal coefficient theorem relates cohomology with coefficients in G to homology with integer coefficients, via a short exact sequence: 0 -> Ext^1(H_{n-1}(X; Z), G) -> H^n(X; G) -> Hom(H_n(X; Z), G) -> 0. This sequence always splits (non-naturally), so H^n(X; G) = Hom(H_n(X), G) + Ext(H_{n-1}(X), G) as abelian groups. The theorem says cohomology is "almost" dual to homology — the Hom term gives the expected duality, while the Ext term is a correction for torsion that shifts information from dimension n-1 to dimension n.
The universal coefficient theorem (UCT) connects homology and cohomology through the algebraic functors Hom and Ext. There are two versions: one for cohomology (relating H^n to H_n) and one for homology with coefficients (relating H_n(X; G) to H_n(X; Z)). The cohomological version, which is the more commonly used, states: for any space X and abelian group G, there is a short exact sequence 0 -> Ext^1(H_{n-1}(X; Z), G) -> H^n(X; G) -> Hom(H_n(X; Z), G) -> 0, and this sequence splits (though not naturally).
The Hom term Hom(H_n(X), G) is the "expected" contribution — it says cohomology is dual to homology. If all homology groups were free abelian, this term would give the complete answer: H^n(X; G) = Hom(H_n(X), G). The Ext term Ext^1(H_{n-1}(X), G) is the correction for torsion. Ext^1(A, G) measures the "non-split extensions" of G by A and is computed from a free resolution of A. For the key cases: Ext^1(Z, G) = 0 (free groups contribute nothing), Ext^1(Z/nZ, G) = G/nG (cyclic torsion produces a quotient). So if H_{n-1}(X) has a Z/nZ summand, it contributes a G/nG summand to H^n(X; G). When G = Z, this gives Ext^1(Z/nZ, Z) = Z/nZ: torsion in H_{n-1} reappears as torsion in H^n, shifted up by one degree.
The splitting of the short exact sequence means that H^n(X; G) = Hom(H_n(X), G) direct sum Ext^1(H_{n-1}(X), G) as abstract abelian groups. However, this splitting is not natural — there is no way to choose the splitting compatibly with continuous maps. This non-naturality means the "decomposition" into Hom and Ext summands is not functorial, and one should not think of cohomology as literally being the direct sum of these two terms in any canonical way. The short exact sequence itself IS natural, and that is the correct functorial statement.
The UCT has a dual version for homology with coefficients: 0 -> H_n(X; Z) tensor G -> H_n(X; G) -> Tor_1(H_{n-1}(X; Z), G) -> 0. Here the Tor term plays the role of Ext, detecting how torsion in H_{n-1} interacts with the coefficient group G under the tensor product. When G is a field, both Tor and Ext vanish (or become trivial), and the theorem simplifies dramatically: H_n(X; k) = H_n(X; Z) tensor k, and H^n(X; k) = Hom_k(H_n(X; k), k). This is why field coefficients are technically simpler and why rational or mod-p homology is often computed first.
The universal coefficient theorem explains several phenomena. It clarifies why real projective spaces have torsion in cohomology (shifted from their torsion in homology). It explains why cohomology over a field contains the same information as homology (both Ext and Tor vanish). And it provides the theoretical basis for the Kronecker pairing between cohomology and homology: the surjection H^n(X; G) -> Hom(H_n(X), G) is the map that evaluates cocycles on cycles, and its kernel (the Ext term) consists of the "phantom" classes that pair trivially with all cycles. The UCT is one of the workhorses of algebraic topology, providing the algebraic machinery to move between homological and cohomological computations.