This book is designed to support and encourage hands-on learning about programming. It contains 174 exercises, spanning a variety of academic disciplines and everyday situations, which you can solve using only the material covered in most introductory Python programming courses. Each exercise that you complete will strengthen your understanding and enhance your ability to tackle subsequent programming challenges. I also hope that the connections that these exercises make to other academic disciplines and everyday life will keep you interested as you complete them.