Acknowledgments

This textbook would not exist without the communities that built the tools and ideas it teaches.

To the Python community: Thank you for creating a language that is powerful enough for professionals and welcoming enough for beginners. Python's design philosophy — readability counts, there should be one obvious way to do it, simple is better than complex — shaped not just the code in this book but its pedagogical approach. Special thanks to the Python Software Foundation for keeping the language free and open.

To the open-source community: Every tool used to write, format, and distribute this book is open source. The ethos of open source — that knowledge improves when it is shared — is the reason this textbook is free. The developers and maintainers who give their time to projects like Git, VS Code, Jupyter, pytest, and thousands of others make modern computing possible. This book stands on your shoulders.

To the CS education research community: Decades of research on how students learn to program informed the structure of this book. The emphasis on threshold concepts, spaced retrieval practice, productive struggle, and multiple representations draws from the work of countless researchers who study what actually helps novices become competent programmers. The work of the ACM SIGCSE community, the ITiCSE working groups, and the CS education researchers who publish their findings openly shaped every chapter.

To the instructors who field-tested early drafts, caught errors, suggested better explanations, and reminded us what it is like to sit across from a student who is seeing a traceback for the first time — thank you. Your classroom experience made this a better book.

To future contributors: This is an open educational resource. If you find a typo, a broken code example, a confusing explanation, or a gap in coverage, you can help fix it. The best textbooks are living documents, and this one is designed to grow with its community. Your pull request is welcome.

And to every student who opens this book wondering whether computer science is for them: it is.