Algorithmic Approaches To Teaching