the idea is quite simple: Let $M$ be a smooth manifold. For $U \subset M$, we have the space $\Omega^p(U)$, so we may consider $\Omega^p$ to be a presheaf on $M$ and in fact it is a sheaf. Poincaré's lemma shows that the De Rham complex is a resolution of the constant sheaf. And by partition of unity, any sheaf of $C^\infty(M)$-modules is fine, so that's an acyclic resolution, so De Rham cohomology computes sheaf cohomology with values in $\Bbb R$.
On the other hand, for any open $U \subset M$, we can define the space of $\Bbb R$-valued singular cochains on $U$, in this way, we get a preshe…