21st Century Algorithms Project Report