Singular cohomology is defined by dualizing the singular chain complex for spaces. We will study its basic properties, see how it acquires a multiplicative structure and becomes a graded commutative algebra. We study an algebraic version, namely group cohomology, and compare both approaches.