Systematically teaches key paradigmic algorithm design methodsProvides a deep insight into randomization