I'm currently giving myself a self-taught crash course in computer science, half for fun and half for continuing education. I'm just about finished with John Zelle's Python Programming: An Introduction To Computer Science (http://amzn.com/1887902996), and now I'm looking for a second book to pick up for when I do finish this one.
Just to make clear, what I like about Zelle's book are the problems at the end of each chapter. I looked through quite a few intro books, but a lot of them fell into the encyclopedic category with more details of language components than practical applications, e.g. Learning Python, while maybe great for a CS grad, wasn't for me. The Zelle book, meanwhile, finished every chapter with a string of assignments related to finance, physics, etc. Since I learn better by doing than by reading, this was unimaginably helpful.
It looks like the same author has another book out intended as a second step and transition from Python to C++ (http://mail.python.org/pipermail/edu-sig/2009-January/009046.html) but before I dropped 85 dollars on a book, I wanted to get a second (third, fourth?) opinion:
Given that I now have a basic, basic understanding of computer science and python, is there a next step you would recommend? Keep in mind that being assigned problems to complete is a hugely important component for me.
Thanks a lot for your suggestions!