This site partners with the book, Problem Solving with Python: Using Computational Thinking in Everyday Life by Michael D. Smith. You can purchase the book directly from MIT Press or through Amazon.
The book teaches you to problem solve with computation. It is a better way to learn Python programming, including how to code with the help of generative AI. If you have zero background in computer science or the art of computer programming, but you want to learn, you've come to the right place.
The book is not organized like a typical introduction to computer science. It eschews the brutally boring syntax-first approach that has you memorize grammar and punctuation. Instead, it helps you learn to use computation to solve problems that matter to you.
Each chapter in this book is a problem to be solved. As you tackle each problem, you'll learn fundamental concepts of computer science and how to express your ideas in the Python programming language. Problem solving is a process, and through a carefully sequenced set of problems, you'll grow from novice to practitioner. This approach works because ideas and skills stick with you when you immediately see how they're useful.
To dive deeper, I invite you to read the book's Welcome, which you can access through the "Look Inside" button on penguinrandomhouse.com.
If you're an instructor interested in adopting this approach, its book, and my homeworks and programming assignments, please email me. You can find my contact information on my Harvard homepage.
All the code shown in the book is available through the GitHub Organization "pswp". There is a repository for each book chapter.
Access index of chapter repos!To get the most out of this approach, you'll want to try what you read, and this means that you'll need an integrated development environment (IDE). An IDE is makes it easy for you to write and test your own code.
Let's get you an IDE!Here's where you can find active learning exercises (ALEs) that will deepen your understanding of each chapter's content.
Choose a chapter from the dropdown list and then click the "Go!" button to navigate to that chapter's ALEs.