You can compute the integer (co)homology groups of a compact manifold from a Morse function $f$ together with a generic Riemannian metric $g$; the metric enters through the (downward) gradient flow equation $$ \frac{d}{dt}x(t)+ \mathrm{grad}_g(f) (x(t)) = 0 $$ for paths $x(t)$ in the manifold. After choosing further Morse functions and metrics, in a generic way, you can recover the ring structure, Massey products, cohomology operations, Reidemeister torsion, functoriality. The best-known way to compute the cohomology from a Morse function is to form the Morse cochain complex, generated by the critical points (see e.g. Hutchings's <a href="http://math.berkeley.edu/~hutching/">Lecture notes on Morse homology</a>). Poincaré duality is manifest. Another way, due to <a href="http://arxiv.org/pdf/math.DG/0101268">Harvey and Lawson</a>, is to observe that the de Rham complex $\Omega^{\ast}(M)$ sits inside the complex of currents $D^\ast(M)$, i.e., distribution-valued forms. The closure $\bar{S}_c$ of the the stable manifold $S_c$ of a critical point $c$ of $f$ defines a Dirac-delta current $[\bar{S}_c]$. As $c$ varies, these span a $\mathbb{Z}$-subcomplex $S_f^\ast$ of $D^*(M)$ whose cohomology is naturally the singular cohomology of $M$. The second approach could be seen as a "de Rham theorem over the integers", because over the reals, the inclusions of $S_f\otimes_{\mathbb{Z}} \mathbb{R}$ and $\Omega^{\ast}_M$ into $D^\ast(M)$ are quasi-isomorphisms, and the resulting isomorphism of $H^{\ast}_{dR}(M)$ with $H^\ast(S_f\otimes_{\mathbb{Z}}\mathbb{R})=H^\ast_{sing}(X;\mathbb{R})$ is the de Rham isomorphism.