Exercises from Harvard's online version of CS50.