The best way to learn design in any field is to study examples, and some of the best examples of software design come from the tools programmers use in their own work. Software Design by Example: A Tool-Based Introduction with Python therefore builds small versions of the things programmers use in order to demystify them and give some insights into how experienced programmers think. From a file backup system and a testing framework to a regular expression matcher, a browser layout engine, and a very small compiler, we explore common design patterns, show how making code easier to test also makes it easier to reuse, and help readers understand how debuggers, profilers, package managers, and version control systems work so that they can use them more effectively.
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
Author Biography:
Dr. Greg Wilson is a programmer, author, and educator based in Toronto. He co-founded and was the first Executive Director of Software Carpentry, which has taught basic software skills to tens of thousands of researchers worldwide, and has authored or edited over a dozen books (including two for children). Greg is a member of the Python Software Foundation and a recipient of ACM SIGSOFT's Influential Educator of the Year award.
Choose a destination to see accurate shipping times, delivery options, pricing and product availability.
Afterpay logo
Shop now. Pay later. Always interest‑free.
Swing through the checkout with Afterpay.Get your order now, pay in four fortnightly payments.
Afterpay offers simple payment plans for online shoppers, instantly at checkout.Buy what you want today, pay for it over time. Interest free, with no additional fees if you pay on
time.
1
Select Afterpay as your payment method
Use your existing payment card
2
Complete your checkout in seconds
No long forms, instant approval
3
Get your items just as fast as always
Your order ships straight away
4
Pay over four payments, interest free
Enjoy now, pay later
How it works
Simply select Afterpay as your payment method in the checkout or when picking up your items from the Mighty Ape distribution centre,
and enter your details at Afterpay to complete your order
Your payment schedule will be shown in the checkout, and emailed to you
If you are a new Afterpay customer, the first payment will be made at the time of purchase, with
remaining payments over the next 6 weeks
Once you have been an Afterpay customer for 6 weeks, on subsequent orders you may be eligible to
make your first payment in 14 days, with final payment in 8 weeks
If you need to return your items for a refund, the payment plan can be cancelled
If you fail to make a payment, you will be charged a late payment fee of $10 with a further $7
fee added 7 days later if the payment is still unpaid