Acknowledgments

This book distils years of teaching programming across multiple languages — C, C++, C#, Python — into the concepts that stay constant regardless of syntax. The students who worked through earlier versions of this material, in handouts and exercises and lab sessions, shaped the approach long before it became a book. Their questions revealed which explanations worked and which needed rethinking. Their frustrations pointed to the real barriers, which were almost never about syntax.

Colleagues who teach programming in different contexts provided feedback that kept the ideas grounded. The question “would a complete beginner actually understand this?” became a design principle.

The Python community deserves credit for creating a language accessible enough to teach concepts without the language itself becoming the obstacle. The open source community behind Quarto, GitHub, and the broader publishing toolchain made it possible to write, build, and publish across multiple formats.

AI tools were used throughout the writing process. Claude (Anthropic) served as a conversation partner for drafting, iterating, and refining both text and code examples. The process was the same one the book teaches: use AI to explore and refine, but keep the thinking yours. Every explanation, every exercise, every pedagogical decision reflects the author’s judgement. The AI made the work faster. It did not make the decisions.