Difference between Homology and Cohomology Homology and cohomology are similar because the latter is the former acted by $\text{hom}$ functor, and we also have

Theorem Let $C$ and $D$ be free chain complexes; let $\phi:C\to D$ be a chain map. If $\phi$ induces homology isomorphisms in all dimensions, then $\phi$ induces cohomology isomorphism in all dimensions.

That is to say, if we can not use homology to distinguish two space, so do cohomology.
However my teacher told us that the essential difference between them is the ring structure on the cohomology. So my questions are


*

*Can we introduce a cup product on homology? If not, why?

*Why is the ring structure essential difference between them?
Any advice is helpful. Thx.
 A: Such multiplicative pairings on homology do often arise through cup product. However they usually not arise that naturally and also if so, it is harder to introduce them for example in terms of well-definedness. Maybe you want to look up the term "intersection form", which is dual to the cup product.
Note: Cohomology arises by applying $hom$ to the original chain complex, not on homology. It turns out, that there is always a relation between those two, but only in some cases cohomology arises by applying $hom$ to homology.
You are correct, that cohomology interpreted as a graded module/group might not give more information, regarding the resulting modules. However a functor also gives you maps, which is an additional tool which actually can give you additional information (if you have both), you can look up an example here.
Lastly, it might be interesting for you to see an example about why the graded ring structure might be important. For example, you would expect the cup product to behave natural under wedge sum. So consider $S^2 \vee S^4$ and also $\mathbb CP^2$. We have the same cohomology and homology graded module for both: $\mathbb Z,0,\mathbb Z , 0 ,\mathbb Z,0,0\cdots$. So there is no way to distinguish them so. But considering the graded multiplication structure on cohomology, it turns out that the generator of $H^2(S^2\vee S^4)= H^2(S^2) \oplus H^2(S^4)$ which arises from $S^2$ won't square to a non-trivial element in $H^4$, because this is generated by an element coming from $S^4$. So those (dimensions 2 and 4) are pretty independent, we basically superficially wedged together spheres to imitate $CP^2$'s cohomology module. However we have the case that a generator of $H^2(CP^2)$ squares to a generator of $H^4(CP^2)$. Now if we knew that cohomology is a functor to graded rings, i.e. multiplication behaves natural under maps, we know that those spaces can't be equivalent.
A: There are a lot of different answers to this question in a lot of different levels of complexity, so I'm just going to pick one: Cohomology is a representable functor. For reasons of abstract nonsense (Brown's representability theorem, for example), there exists a space $K = K(A, p)$ such that $H^p(X, A) = [X, K]$, the space of maps $X \to K$ modulo homotopy, for any $X$. (I'm working in the category of, say, CW-complexes with basepoint throughout.) That allows us, for example, to study cohomology operations, which are natural transformations $\theta:H^n(\cdot, A) \to H^m(\cdot, A')$. Because of more abstract nonsense, they can be identified with the cohomology of the Eilenberg-MacLane spaces $K$. The most familiar of these are probably the Steenrod square and its variants. 
To introduce a product on homology, we can consider the map $C_*(X) \to C_*(X) \otimes C_*(X)$ involved in the definition of the cup product, with coefficients in some fixed ring $A$. (For simplicial homology, it's given by decomposing an $n$-simplex into its front $p$-face and back $(n-p)$-face, but it's easier to just write out algebraically.) For cohomology, we work with the duals of the groups, thus getting a nicer map $C^*(X) \otimes C^*(X) \to C^*(X)$, which ultimately leads to a map $H^*(X) \otimes H^*(X) \to H^*(X)$. \In homology, we're stuck with the map $C_*(X) \to C_*(X) \otimes C_*(X)$ itself.  That's not exactly awful; we can make $H_*(X)$ into a co-algebra with it. If we're working over a compact, oriented manifold with coefficients in a field, there's no real difference anyway because of Poincare duality.
A: Let $X$ be a set and $k$ a field. A toy model for homology is the free $k$-vector space $k[X]$ on $X$, while a toy model for cohomology is the $k$-vector space $k^X$ of functions $X \to k$. (In fact these are the homology and the cohomology, respectively, of $X$ regarded as a discrete space.) For example:


*

*$k[X]$ is covariant with respect to maps of sets, while $k^X$ is contravariant. 

*$k^X$ is the vector space dual of $k[X]$ (analogous to universal coefficients for cohomology).

*We can identify $k^X$ and $k[X]$ when $X$ is finite but not in general (analogous to Poincare duality).

*$k^X$ has an algebra structure while $k[X]$ instead has a coalgebra structure. 


Thinking about the case where $X$ is an infinite set is particularly enlightening. There you see that the basic difference is that homology classes are "compactly supported": they live on finite subsets of $X$, while cohomology classes can live on all of $X$. This is an important intuition for understanding the statement of Poincare duality on a not-necessarily-compact manifold. 
