Assignments form Stanford's online Programming Methodology course.