Introduction To Programming Using Python by Y. Daniel Liang