Contains all the algorithms required for COMP2230 at University of Newcastle