De Rham cohomology, and forms on manifolds In String Theory and M-Theory by Becker, Becker and Schwarz, they introduce a group,
$$C^{p}(M)$$
which they denote the group of all closed $p$-forms on the manifold $M$. Furthermore, they state
$$Z^p(M)$$
is the group of all exact $p$-forms on the manifold $M$. The $p$th de Rham cohomology is then,
$$H^p(M)=C^p(M)\, /\,Z^p(M)$$
i.e. the quotient of the groups. However, what I do not understand is what they mean by a $p$-form on the manifold $M$. What distinguishes a differential form that is on/belongs to $M$?

Furthermore, in practice, does one compute the de Rham cohomology using this definition, or is it somewhat inconvenient? If so, how does one, in practice, compute $C^p(M)$ first, for example?

Note: I am a physicist, but open to a mathematician's response.
 A: The most familiar definition of a $p$-form on $M$ is probably as a completely antisymmetric $(0,p)$-tensor field on $M$ - it smoothly assigns an alternating form $(T_x M)^p \to \mathbb R$ to each $x \in M$ . (If this doesn't make sense to you either then it seems you have some basic differential topology background to catch up on.) 
It's certainly not obvious how to compute the deRham cohomology from its definition. Simple examples can be computed using arguments involving the Poincaré Lemma (one of the fundamental results) - here's one example modelling the circle $S^1$ as a line segment $[0,1]$ with periodic boundary conditions: 
Any closed $1$-form $\alpha \in C^1(S^1)$ will be the derivative of some function $f$ on $[0,1]$, so the only obstruction to $S^1$ having trivial cohomology is the fact that this $f$ may not satisfy the boundary conditions: we can have $f(1) - f(0) = C \ne 0$. (Providing an example of such an $f$ proves that $H^1(S^1) \ne 0$.) But then $f - Cx$ does satisfy the boundary conditions (i.e. is a function on $S^1$), so $\alpha = d(f - Cx) + Cdx$ on $S^1$. Thus any closed form is the sum of an exact form and a multiple of $dx$; i.e. $H^1(S^1) \subset \mathbb R [dx]$. Since we already know it's not zero, it must be the entire 1-dimensional space $\mathbb R [dx] \simeq \mathbb R$.
Some other useful tools are the homotopy invariance ("if you can shrink $M$ to $N$ then they have the same cohomology") and the Mayer-Vietoris theorem (which links the cohomology of $U \cup V$ to that of $U$, $V$ and $U \cap V$) - using these you can often break your manifold up into simple pieces, compute the cohomologies of these pieces and then put it all together.
