Programming exercises from http://programmingpraxis.com/