Programming assignments for the Princeton Algorithms Part I MOOC