Direct proof that the wedge product preserves integral cohomology classes? Let $H^k(M,\mathbb R)$ be the De Rham cohomology of a manifold $M$.
There is a canonical map $H^k(M;\mathbb Z) \to H^k(M;\mathbb R)$ from the integral cohomology to the cohomology with coefficients in $\mathbb R$, which is isomorphic to the De Rham cohomology. As a previous question already revealed, the images of this map are precisely the classes of differential $k$-forms $[\omega]$ that yield integers when integrated over a $k$-cycle $\sigma$,
$$ \int_{\sigma} \omega \in \mathbb{Z}  \quad\text{ whenever } d\sigma = 0$$
Let us call them "integral forms".
Motivated by the cup product on cohomology, my question/request is the following:

Give a direct proof that the wedge product $[\omega\wedge\eta]\in H^{k+l}(M,\mathbb R)$ of two integral forms $\omega\in \Omega^k(M)$ and $\eta\in \Omega^l(M)$ is again an integral form.

This should be true because the cup product is mapped to the wedge product, but the point of the exercise is to prove this statement directly, without constructing the singular cohomology $H^k(M,\mathbb Z)$ or homology first.
Maybe I also have to make sure that the condition of being an integral form is something that can be "checked effectively" without singular homology; this might be subject to a new question.
 A: My cohomology is a bit rusty, so I'm sorry for any mistakes or for being sketchy. It may also be that my suggestion is too close to the singular cohomology solution you want to avoid, although I'll be using Cech cohomology instead.
Let's first make a covering $\mathcal{U}=(U_j)_{j\in I}$ of $M$ where all $U_j$, as well as $U_J=\bigcap_{j\in J} U_j$ for $J\subset I$, are contractible (or empty).
The basic idea is to use the double complex
$$
\begin{array}{ccccccccc}
&&0&\rightarrow&C^0(\mathbb{R})&\rightarrow&C^1(\mathbb{R})
   &\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
0&\rightarrow&\Omega^0&\rightarrow&C^0(\Omega^0)&\rightarrow&C^1(\Omega^0)
   &\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
0&\rightarrow&\Omega^1&\rightarrow&C^0(\Omega^1)&\rightarrow&C^1(\Omega^1)
   &\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
\end{array}
$$
where $C^q(\Omega^p)=C^q(\mathcal{U},\Omega^p)$ consists of $(\omega_J)_{J\in I_p}$ where $I_p$ is the set of size $p+1$ subsets of $I$ and $\omega_J\in\Omega^p(U_J)$: i.e. the setup for defining the Cech cohomology.
We then have maps $\delta:C^q(\Omega^p)\rightarrow C^{q+1}(\Omega^p)$,
and $d:C^q(\Omega^p)\rightarrow C^q(\Omega^q)$.
For convenience, I'll pretend $C^q(\Omega^{-1})=C^q(\mathbb{R})$ and $C^{-1}(\Omega^p)=\Omega^p$ (i.e. global $p$-form which I should probably have denoted $\Gamma(\Omega^p)$ instead of just $\Omega^p$).
Note that $H^p(C^q(\Omega^\bullet))=0$ for $p\ge 0$ since closed forms are exact on all the contractible sets $U_J$.
The proof that $H^k_\text{dR}(M)=H^k(\Omega^\bullet)$ is equal to $H^k(M;\mathbb{R})=H^k(C^\bullet(\mathbb{R}))$ is then done by diagram chasing.
Start with $\omega\in\Omega^k$ with $d\omega=0$. This maps to $(\omega^{(0)}_J)_{J\in I_0}\in C^0(\Omega^k)$ by restriction of $\omega$ to each $U_J$, $J\in I_0$. Since $d\omega^{(0)}_J=0$, we have $\omega^{(0)}_J=d\upsilon^{(0)}_J$ for some $\upsilon^{(0)}_J\in\Omega^{k-1}(U_J)$. This $(\upsilon^{(0)}_J)$ is then mapped to $\omega^{(1)}\in C^1(\omega^{k-1})$. And so we go, alternatingly moving up and right, until we get an element of $C^k(\mathbb{R})$.
Similar diagram chasing is used to show that this mapping is one-to-one module the images $d\Omega^{k-1}$ and $\delta C^{k-1}(\mathbb{R})$. (Assuming I haven't mixed things up here.)
A $k$-form $\omega$ is integral in $H^k_\text{dR}(M)\equiv H^k(M;\mathbb{R})$ if it can be mapped by the above procedure to an element in $C^k(\mathbb{Z})$.
So, here's the trick. Let $\omega$ and $\nu$ be closed $p$- and $q$-forms resp. corresponding to integral cohomology classes. We can then replicate the entire diagram chasing for $\omega$, but apply it to $\omega\wedge\nu$ where through each step we leave $\nu$ unchanged, finally mapping $\omega$ to an element $\omega^{(p)}\in C^p(\mathbb{Z})$. In this way, we chase $\omega\wedge\nu$ to an element in $C^p(\Omega^q)$ which looks like the restriction of $\nu$  to $U_J$ sets, multiplied by the integer values of $\omega^{(p)}_J$.
Afterwards, we continue to do the same with $\nu$:
the $\omega^{(p)}=(\omega^{(p)}_J)_{J\in I_p}$ part now consist of just constants by which the forms are multiplied.
As I warned, my cohomoloogy is somewhat rusty, so I may quite likely have missed a number of technical issues. However, I think this basic approach should work. And it should be a good excercise in diagram chasing.
A: $\def\ZZ{\mathbb{Z}}\def\RR{\mathbb{R}}$I'm not sure if this is an answer to the question, since it does refer to $H_{\ast}(M, \ZZ)$, but I think it sheds some interesting light on why the problem is hard.
We begin with a flawed proof attempt. Write $\delta$ for the diagonal map $M \to M \times M$, and $\pi_1$ and $\pi_2$ for the projections from $M \times M$ onto its first and second factor. Let $\rho$ be an integer $k+\ell$-cycle and let $\alpha$ and $\beta$ be a $k$-form and an $\ell$-form on $M$. Then $\int_{\rho} \alpha \wedge \beta = \int_{\delta(\sigma)} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$. Suppose $\rho$ were homologous in $M \times M$ to $\sum \sigma_i \times \tau_i$, for various cycles $\sigma_i$ and $\tau_i$ in $H_{\ast}(M)$, with $\dim \sigma_i + \dim \tau_i=k+\ell$. Then we would have 
$$\int_{\rho} \alpha \wedge \beta = \sum \int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta) =\sum_{(\dim \sigma_i, \dim \tau_i) = (k, \ell)} \int_{\sigma_i} \alpha \int_{\tau_i} \beta.$$
This would prove the result. (The integrals over terms where $\dim \sigma_i \neq k$ would drop out. If $\dim \sigma_i<k$, then $\pi_1^{\ast}(\alpha)|_{\sigma_i \times \tau_i}=0$ so $\int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)=0$, and likewise if $\dim \tau_i < \ell$.)
Unfortunately, this need not be true. Saying that $\delta(\rho)$ should always be homologous to such a class is saying that $\delta_{\ast} H_m(M)$ should lie in the image of $\bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ)$. But the map $\bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ)$ need not be surjective -- the cokernel is $\bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ))$ by the Kunneth theorem. There is no reason that $\delta_{\ast}$ needs to land in the image of $\bigoplus H_i \otimes H_j$; I give an example where it doesn't in this Mathoverflow thread, 
So we have to work harder. The good news is that the full statement of Kunneth's theorem includes the statement that
$$0 \to \bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ) \to \bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ)) \to 0$$
is (noncanonically) split. Choose such a splitting 
$$\iota: \bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ)) \to H_m(M, \ZZ).$$ 
Then we can write $\delta(\rho) = \sum \sigma_i \times \tau_i + \iota(\sum \phi_j)$ for some $\phi_j$ in Tor groups. But the good news is that Tor groups are torsion, so an integer multiple of $\phi_j$ is homologous to zero. This means that $\int_{\iota(\phi_j)} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$ must be zero. So we still have $\int_{\rho} \alpha \wedge \beta = \sum \int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$ and now the proof concludes as before. $\square$.
What I find interesting about this argument is two things:
(1) We never had to build cup product in $H^{\ast}(M, \ZZ)$, or prove its compatability with de Rham cohomology, we just tried to shove cycles around naively.
(2) Proving Kunneth with the full statement that the sequence is split is not hard. But I have only ever seen it done in a very algebraic way, not by explicitly writing a cycle on $X \times Y$ as $\sum \sigma_i \times \tau_j + \phi$ for some torsion $\phi$. Moreover, there is no canonical choice of splitting. This may explain why no one seems to be able to prove this in a natural way.
A: I mostly use cohomology as a blackbox so I may be overlooking technical difficulties but here's how I'd try to prove your statement.
First I would note that being integral is a local property: the class $[\omega]$ of a closed form is integral iff its restrictions $[\omega|_{U_i}]$ to a covering $M = \bigcup U_i$ is integral. One way is obvious: if $\sigma \subset U_i$, then $\int_\sigma \omega|_{U_i} = \int_\sigma \omega$. For the other, we can chose a (finite) triangulation $\sigma = \bigcup \sigma_\alpha$ such that each $\sigma_\alpha$ is included in one of the $U_i$ so that we can write $\int_\sigma \omega = \sum_\alpha \int_{\sigma_{\alpha}} \omega|_{U_{i(\alpha)}}$.  
The point is that you can check integrality by using the triangulation you like.
Then I would write the cup product as $H^i_{dR}(X) \otimes H^j_{dR}(X) \to H^{i+j}_{dR}(X\times X) \to H^{i+j}_{dR}(X)$ the external product followed by restriction to the diagonal. And I'd check that each map sends integral integral classes to integral classes using triangulations. 
