This is Malcolm Cameron's BSc thesis.