Software Design in Python: Status Update

Posted

The Python version of Software Design by Example is getting closer. Here’s where the content is falling short of my targets right now:

Content Chapters Under Target
Slides 2/27
Exercises 9/27
Figures 13/27
Words 7/27

In more detail:

Title Slides Exercises Figures Words
Introduction 10 0 2 1167
Objects and Classes 17 2 4 1019
Finding Duplicate Files 19 5 5 1752
Matching Patterns 22 8 4 1763
Parsing Text 15 3 3 1194
Running Tests 16 7 4 1933
An Interpreter 16 8 2 1933
Functions and Closures 19 4 3 1422
Mocks, Protocols, and Decorators 5 2 3 1842
A File Archiver 19 7 3 2132
An HTML Validator 20 0 3 1296
A Template Expander 23 10 2 2240
A Code Linter 20 7 2 2183
Page Layout 17 10 7 2277
Performance Profiling 26 11 8 3239
Object Persistence 15 10 4 3237
Binary Data 25 6 4 3896
A Database 27 3 4 2202
A Build Manager 18 8 4 1822
A Package Manager 23 8 4 3001
Transferring Files 19 4 3 1814
Serving Web Pages 18 9 3 2256
A File Viewer 32 3 2 2955
Undo and Redo 20 0 2 1241
A Virtual Machine 19 10 6 2242
A Debugger 21 10 4 2808
Conclusion 3 0 1 485
Total 504 155 96 55351
Average 18.7 5.7 3.6 2050

The syllabus has also evolved a bit—I still need to figure out how to tie those three isolated chapters into the main narrative.

Syllabus for 'Software Design by Example in Python' as of 2023-07-06

Finally, the glossary now has 336 entries; only 289 terms are indexed, but that’s always the very last step (at least for me). There are 34 open issues in the book’s GitHub repository that will take anything from a few minutes to half a day to close, and 7 suggestions for chapters in a second volume that I’ve promised myself I’m not going to write.