This is Mike Smith's site for teaching problem solving with computation to anyone in the world. 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.
This site partners with a soon-to-be-released book from MIT Press titled Problem Solving with Python: Using Computational Thinking in Everyday Life. This 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 we tackle each, 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 introduction.
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.
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.
Coming soon.