
MSC Classification: 55 (Algebraic topology) 
Prerequisites:
Getting Oriented
Rough Guides to Topology 
General Topology  
Algebraic Topology  
Manifold Theory  
Knot Theory 
Homology…
The Basics
Homology Groups
Suppose we are given abelian groups C_{n} for n≥0 (called chain groups) and homomorphisms $\partial_n : C_n\to C_{n1}$ (called boundary homomorphisms) such that ∂_{n}◦∂_{n+1}=0 for all n≥0. This situation can be represented by the collection of maps
(1)which is called a chain complex. The condition ∂_{n}◦∂_{n+1}=0 implies that $\mathrm{Im}\:\partial_{n+1} < \mathrm{Ker}\:\partial_n$, and the abelian group condition implies further that $\mathrm{Im}\:\partial_{n+1}$ is a normal subgroup of $\mathrm{Ker}\:\partial_n$. Therefore, one may define the quotient of these groups.
Definition
Given a chain complex, the nth homology group is the quotient group $H_n=\mathrm{Ker}\:\partial_n \big/ \mathrm{Im}\:\partial_{n+1}$. The elements of the group are called homology classes, and two elements of the same class are said to be homologous.
Elements of the kernel $\mathrm{Ker}\:\partial_n$ are called cycles, and elements of the image $\mathrm{Im}\:\partial_{n+1}$ are called boundaries.
Simplicial Homology
In simplicial homology, the chain groups are made up of combinatorial simplices. An nsimplex is a collection of n vertices $[v_0,\ldots,v_n]$. To handle orientation properly, we assume the list is ordered. Two lists of the same vertices have the same orientation if they are related by an even permutation. By taking finite formal sums of these nchains, one obtains an abelian group, usually denoted $\Delta_n$. Negative elements represent those with reversed orientation. Thus, $[v_0,v_1] =  [v_1,v_0]$, since they represent the same 1simplex but with opposite orientations.
The boundary homomorphism is defined using the orientations. The first few cases are given here as examples:
 $\partial_1[v_0,v_1] = [v_1]  [v_0]$
 $\partial_2[v_0,v_1,v_2] = [v_0,v_1] + [v_1,v_2] + [v_2,v_0] = [v_0,v_1] + [v_1,v_2]  [v_0,v_2]$.
In general, the boundary map $\partial_n:\Delta_n\to\Delta_{n1}$ is defined as follows:
(2)where $\hat v_i$ indicates that the ith vertex is omitted in that summand. The signs guarantee that ∂_{n}◦∂_{n+1}=0.
Examples
A chain complex is a collection of combinatorial simplices over a common set of vertices. For example, we might consider the complex over vertices $v_0,v_1,v_2$ containing only the 1simplices (or edges) $[v_0,v_1], [v_1,v_2], [v_0,v_2]$. Here is the calculation of homology groups:
 Since there are no simplices of dimension greater than 1, C_{n}=0 for n≥2. The chain map reduces to $0\to\Delta_1\to\Delta_0\to0$.
 It is clear that $\mathrm{Im}\:\partial_2=0$ and $\mathrm{Ker}\:\partial_0=\Delta_0$.
 For the remaining boundary map, $\mathrm{Im}\:\partial_1 = \langle [v_1][v_0], [v_2][v_1], [v_0][v_2] \rangle$, which is to say it is generated by the images of the three edges. So the 0th homology group is generated by $\mathrm{Ker}\:\partial_0=\Delta_0=\langle [v_0], [v_1], [v_2] \rangle$, with relations arising from $\mathrm{Im}\:\partial_1$ that state $[v_0]=[v_1]=[v_2]$. A single generator suffices, and so $H_0\cong\mathbb{Z}$.
 $\mathrm{Ker}\:\partial_1 = \langle[v_0,v_1]+[v_1,v_2]+[v_2,v_0]\rangle$, and so $H_1\cong\mathbb{Z}$ also. It is generated by this single cycle.
Singular Homology
OLD MATERIAL… NEEDS UPDATING…
Singular theory deals with maps from simplices into a space. Let $E_0, \ldots, E_q$ be the standard unit vectors in $\mathbb{R}^q$. Then, the standard $q$simplex, denoted by $\Delta_q$, is the simplex spanned by $E_0, \ldots, E_q$. A singular $q$simplex in $X$ is a map $\Delta_q \to X$. A singular $q$chain is the formal sum of singular $q$simplices. The set of singular $q$chains is denoted $S_q(X)$.
We let $(P_0 \cdots P_q)$ denote the unique affine map $\mathbb{R}^q \to X$ taking $E_0$ into $P_0$, $\ldots$, $E_q \to P_q$. The identity map of $\Delta_q$ is $\delta_q=(E_0 \cdots E_q)$. The $i$th face $\sigma^(i)$ of a $q$simplex $\sigma$ is the singular $(q1)$simplex $\sigma \circ F_q^i$, where $F_q^i: \Delta_{q1} \to \Delta_q$ is given by $F_q^i=(E_0 \cdots \widehat{E_i} \cdots E_q)$ (the $E_i$ being omitted). Thus, if $\sigma = (P_0 \cdots P_q)$, then $\sigma^(i) = (P_0 \cdots \widehat{P_i} \cdots P_q)$.
The boundary of a singular $q$simplex $\sigma$ is the $(q1)$chain $\partial(\sigma)=\sum_{i=0}^q (1)^i \sigma^{(i)}$. Note that $\partial \partial = 0$. A cycle is a singular $q$chain $c$ with $\partial(c)=0$. The module of cycles is denoted by $Z_q$. A boundary is a singular $q$chain $c$ with $c=\partial(c')$ for some $(q+1)$chain $c'$. All boundaries are cycles. The submodule of the cycle module $Z_q$ consisting of boundaries is denoted by $B_q$.
Two $q$chains $c_1$, $c_2$, are said to be homologous (written $c_1 \sim c_2$) if $c_1  c_2 = \partial(c')$ for some $(q+1)$chain $c'$. The $q$th singular homology module of $X$, denoted by $H_q(X;R)$, or simply $H_q(X)$, is the quotient module $Z_q/B_q$. Because homologous elements of $S_q(X)$ differ by a boundary, the “zero” element in $H_q(X)$, they represent the same element in $H_q(X)$. The first homology module, $H_0(X)$, is a free $\mathbb{R}$module on as many generators as there are path components of $X$.
The reduced $0$th homology module $H_0^\#(X)$ is obtained by defining the boundary $\partial^\#:S_0(X) \to \mathbb{R}$ by $\partial^\#(\sum_x \nu_x x) = \sum_x \nu_x$. Then, we let $\partial^\# \partial = 0$ and $H_0^\#(X) = \ker \partial^\# / \mathrm{im} \partial_1$. Thus, if $X$ is path connected, then $H_0^\#(X)=0$. The reduced homology is defined by letting $H_q^\#(X)=H_q(X)$ for $q>0$.
We can now consider maps between various spaces, say $X$ and $X'$. We expect that if these maps are wellbehaved, they should not change the homology properties. Given a map $f:X \to X'$, we obtain a homomorphism $S_q(f):S_q(X) \to S_q(X')$ by letting $S_q(f)(\sum\nu_\sigma \sigma) = \sum\nu_\sigma(f \circ \sigma)$, as one would expect. Moreover, $\partial$ commutes with these homomorphisms: $\partial S_q(f) = S_{q1}(f) \partial$. We can also define a homomorphism between the homology modules by $H_q(f)(\bar z) = \overline{S_q(f)(z)}$, where $z$ is a $q$cycle on $X$, and $\bar z$ its homology class. This demonstrates that homology modules are topological invariants.
…discussion of naturality…
Going Further
The Road Ahead
References
 Allen Hatcher, Algebraic Topology