Learn to Code by Solving Problems A Python Programming Primer by Daniel Zingaro

Computer Science Associate Professor Daniel Zingaro publishes a book on learning to program

Dr. Zingaro is an award-winning teacher and researcher focused on student learning. Now he has written a book, based on ten years of teaching and research, to teach students how to problem solve and program in Python. The book includes line by line walkthroughs of code, questions to test conceptual understanding, exercises with built in and immediate feedback, and discussion of common student errors.

More information about the book is available here:

https://nostarch.com/learn-code-solving-problems