I'm trying to compute the singular cohomology of SO(4), just as practice for using spectral sequences. I got H^{0}=**Z**, H^{1}=0, H^{2}=**Z**/2**Z**, H^{3}=**Z**⊕**Z**, H^{4}=0, H^{5}=**Z**/2**Z**, and H^{6}=**Z**. Are these correct? I'm not sure if I'm reading it right, but these calculations seem to disagree with this pretty cool little note on the cohomology ring of SO(n) (check out the crazy pictures at the bottom!).

Also, in the spirit of "teaching a man to fish", does anyone know of some place where people have collected all these sorts of calculations (and possibly also homology and homotopy calculations)?

Lastly, how can I determine the ring structure on H*(SO(4)) from these calculations? Supposedly the isomorphism of whatever your usual cohomology is (de Rham, singular, whatever) with the cohomology of the double complex respects the ring structure, but is it really just as easy as saying that the product of a (p,q)-element with an (r,s)-element lives in (p+r,q+s) and is the thing you'd expect it to be?

ADDENDUM:

Since it's likely that they're incorrect, I'll lay out my process here and hopefully someone with some spare time on their hands can tell me where I went wrong. (I apologize in advance for trying to describe the spectral sequence of a double complex without any diagrams! I tried, but apparently tables don't work on Math Overflow just yet.) I'm working out of Bott & Tu. I'm using the standard fibration of SO(4) over S^{3} with fiber SO(3). They have Leray's theorem (15.11, at least in my very old edition) giving that, since the base is simply-connected, E_{2}^{p,q}=H^{p}(S^{3},H^{q}(SO(3);**Z**)). We know that H^{0}(SO(3))=H^{3}(SO(3))=**Z**, H^{2}(SO(3))=**Z**/2**Z**, and H^{n}(SO(3))=0 otherwise. By the universal coefficient theorem, the singular cohomology of S^{3} with coefficients in an abelian group G is just G in dimensions 0 and 3, and 0 elsewhere. So I've got E_{2} only nonzero in columns 0 and 3, where it's **Z**, 0, **Z**/2**Z**, **Z**, 0, 0, 0... This is in fact E_{∞}, since the only potentially nonzero map from here on out is from the (0,2) entry to the (3,0) entry, but this has to be a homomorphism from **Z**/2**Z** to **Z**, which is necessarily zero. Summing along the diagonals yields the results I gave above.