A major part of topology is the study of properties of topological spaces that are invariant under homeomorphisms. Such properties allow us to classify spaces. Some basic examples are compactness and connectedness. Although quite useful, these properties cannot, for example, distinguish between a torus and a sphere. Algebraic topology uses algebra to attach more sophisticated invariants to spaces. In particular, singular homology associates a sequence of abelian groups to a space known as the homology. After first reviewing general topology as well as some necessary ideas from homological algebra, this thesis establishes the basics of singular homology. Although showing that the homology of a space is a topological invariant is easy, comput...