This material can be used for self-paced study, in an undergraduate course on software design, or as the core of an intensive weeklong workshop for working programmers. Each chapter has a set of exercises ranging in size and difficulty from half a dozen lines to a full day’s work. Readers should be familiar with the basics of modern Python, but the more advanced features of the language are explained and illustrated as they are introduced.
All the written material in this project can be freely reused under the terms of the Creative Commons - Attribution license, while all of the software is made available under the terms of the Hippocratic License. All proceeds from sale of this book will go to support the Red Door Family Shelter in Toronto.
Features:
- Teaches software design by showing programmers how to build the tools they use every day
- Each chapter includes exercises to help readers check and deepen their understanding
- All the example code can be downloaded, re-used, and modified under an open license
This material can be used for self-paced study, in an undergraduate course on software design, or as the core of an intensive weeklong workshop for working programmers. Each chapter has a set of exercises ranging in size and difficulty from half a dozen lines to a full day’s work. Readers should be familiar with the basics of modern Python, but the more advanced features of the language are explained and illustrated as they are introduced.
All the written material in this project can be freely reused under the terms of the Creative Commons - Attribution license, while all of the software is made available under the terms of the Hippocratic License. All proceeds from sale of this book will go to support the Red Door Family Shelter in Toronto.
Features:
- Teaches software design by showing programmers how to build the tools they use every day
- Each chapter includes exercises to help readers check and deepen their understanding
- All the example code can be downloaded, re-used, and modified under an open license

Software Design by Example: A Tool-Based Introduction with Python
342