Classic Computer Science Problems in Python by David Kopec