Motivating Cohomology
Solution 1:
If one operates on an open subset $U$ of Euclidean space $\mathbb{R}^n$, then de Rham cohomology falls out of trying to solve some differential equations.
The starting observation is that a locally constant smooth function will be constant on connected components, so the dimension of the vector space of locally constant smooth functions is the number of connected components. This space is the 0th de Rham cohomology group.
The next step, as is the key in a lot of topology, is to start throwing paths all over the place: replace the space $U$ with the paths inside it (not required to be loops in this case). So we view a 1-form $\omega$ as a function $P_{\omega}$ on paths via the integration map which sends a path to the integral of the 1-form $\omega$ along it. And again we look for those functions $P_{\omega}$ which are locally constant, meaning they remain unchanged under small deformations of the path leaving the endpoints fixed. We know that if $\omega = df$ for $f$ a smooth function, then $P_{\omega}$ satisfies this property trivially because it sends a path to the difference of the values of $f$ evaluated at the path's endpoints. We consider two locally constant path functions $P_{\omega_1}, P_{\omega_2}$ the same if their difference is $df$ for some smooth function $f$. This space is the first de Rham cohomology group.
And so on. For the $k$th group, we consider locally constant $k$-dimensional integrals modulo trivially constant ones. The precise definition is that $H^k(U)$ is the space of closed $k$-forms modulo exact $k$-forms, where a form is closed if its exterior derivative is zero and it's exact if it's the exterior derivative of a $(k-1)$-form. For instance, the statement that on a space $U$ every closed form is exact now becomes the statement that all the higher cohomology groups are trivial.
To finally phrase this in the standard language of homological algebra, you can define de Rham cohomology as the cohomology of the chain complex $(\Omega^k(U), d)$ where $\Omega^k(U)$ is the set of $k$-forms on $U$ and $d$ is the exterior derivative.
It seems that this could be explained to anybody who has studied multivariable calculus. It has the advantage that computing some basic examples of cohomology groups requires one to think only about some calculus, nothing hard to visualize.
Solution 2:
For simplicial/cellular cohomology, one way to think of it is in terms of dual cell structures: if $a_1,a_2,\dotsc$ are your $k$-simplices or $k$-cells, then they generate the $k$th chain group, and the $k$th cochain group is generated by their duals $\alpha_1,\alpha_2,\dotsc$, where $\alpha_i(a_j)=\delta_{ij}$. You can then draw a dual cell structure which has an $n-k$-cell for every $k$-cell in your original space, with each cell representing a cochain, and with that cochain sending the chains it intersects to $1$ and the rest to $0$ (and extending linearly). So if your space is a surface, you put a vertex inside every face, draw an edge between two of those vertices if there's an edge between the corresponding faces, and add a face between a set of edges if the dual edges all intersect in a vertex.
Then the homology of the new cell structure is the cohomology of the original structure. With field coefficients on a manifold, at least. But it does allow you to visualize, for example, the coboundary map: in the case of our surface, it sends $C^1$ to $C^2$, but $C^2$ "looks 0-dimensional", and so the coboundary map "looks like a boundary map," which is something your students are hopefully familiar with.
Also, if you do it with Platonic polyhedra, you get other Platonic polyhedra. A cube becomes an octahedron, etc. Of course, they all have the same (co)homology but they have different (co)chain groups so they're nice trivial examples, and more interesting than just an arbitrary sphere.
Hatcher goes over this very briefly in the beginning of his chapter on cohomology. He also gives a thing you can do with $\mathbb{Z}$ coefficients that's similar, though in this case you can run into torsion, so I don't know if it's as good an example.
The other thing you can do is just take the no-nonsense algebraic tack. We like cohomology because sometimes we want maps going the wrong direction. For example, its ring structure is easier to work with than homology's coalgebra structure (if your kids are familiar with homology, at this point you show them the coalgebra structure induced by the diagonal map and how it's hard to work with). And you get so much information for free just by knowing that certain maps are ring homomorphisms rather than graded abelian group homomorphisms. I can't think of a good example off the top of my head, but I know there is one.
Oh, I was taught de Rham cohomology before I even knew what homology ways. I think it's pretty easy to understand. That's another option.
Solution 3:
This is meant to be a comment below Zach Conn's answer, but for some reason I don't seem to have the option of commenting.
This is really the same answer -- in short, integrals can be viewed as cohomology classes -- but just to give a very concrete example:
Consider $\int_C \frac{dz}{z}$ where $C$ is a closed curve in the complex plane that misses the origin. If you think of $C$ as variable, then the value of the integral depends only on the homology class of $C$ in the punctured plane. (If $C$ represents $n$ times the usual homology generator, then the integral is $2\pi i n$.)
In other words $\int_{\cdot} \frac{dz}{z}$ is a linear functional on the homology, which is to say a cohomology class. Which is my point: it is often the case that "cohomology" equals "functionals on homology" (though not always, e.g. in the presence of torsion). So if one understands homology, then this can be a starting point.