My third book, Classic Computer Science Problems in Python, is now published in its final form. You can purchase the print edition from Amazon and Manning. Print copies come with a way to download the eBook for free from Manning’s website. You can also purchase the standalone DRM-free eBook (PDF, .mobi (Kindle), and .epub (Apple Books)) from Manning. As a special bonus for being a reader of this post on my blog, use code ccspkopec to get 40% off on Manning’s website on either edition.
Classic Computer Science Problems in Python teaches computer science problem solving techniques to intermediate and advanced Python programmers. It is a broad book, not a deep book, covering a wide swath of topics ranging from search algorithms to neural networks. You can think of it as a survey book for self-taught programmers without a formal CS education, although it has also been found useful by students and CS educated folks looking to brush up on some of the covered topics. What it is most definitely not is a textbook—it tries to minimize the barrier to entry for readers by using little formal notation and by not requiring much of a mathematical background. It does not aim to be academically rigorous. Instead, it is focused on actual code solutions to the many classic problems presented, and explaining those solutions in plain English.
This is the second book in the Classic Computer Science Problems series, published one year after Classic Computer Science Problems in Swift. I have created a website, classicproblems.com, that provides detailed information about both books. If you read the site and your question about the book is still not answered, feel free to reach out to me on Twitter @davekopec. You can also listen to me answer host Tobias Macey’s questions about the book on episode 197 of Podcast init. Finally, I have recorded an episode of Talk Python to Me about the book with host Michael Kennedy that should be appearing in the next couple of months.
The book uses Python 3.7 and type hints throughout. The use of features from the latest version of Python has been praised by most readers. However, the use of type hints in particular was, as expected, controversial. I think the type hints ultimately add clarity, but I agree that they certainly take some getting used to for Python programmers who have not seen them before. To ease the transition, we included a crash course on type hints in Appendix C.
Classic Computer Science Problems in Python has already been very successful. Its pre-sales through Manning’s early access program have exceeded the total sales of my previous two books. In fact, prior to publication, translation rights have already been acquired for the book for the languages Korean, Japanese, and Traditional Chinese. I guess it’s true what they say—third time’s the charm. I’d like to thank all of the readers and all of my supporters, both online and offline. I hope you enjoy the book!