Classic Computer Science For Pythonistas - Episode 197

Summary

Software development is a career that attracts people from all backgrounds, and Python in particular helps to make it an approachable occupation. Because of the variety of paths that can be taken it is becoming increasingly common for practitioners to bypass the traditional computer science education. In this episode David Kopec discusses some of the classic problems that he has found most useful to understand in his work as a professor and practitioner of software engineering. He shares his motivation for writing the book "Classic Computer Science Problems In Python", the practical approach that he took, and an overview of how the contents can be used in your day-to-day work.

linode-banner-sponsor-largeDo you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2018 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.


Clubhouse LogoThis episode of Podcast.__init__ is brought to you by Clubhouse, the first project management platform for software development that brings everyone together so that teams can focus on what matters – creating products their customers love. Clubhouse provides the perfect balance of simplicity and structure for better cross-functional collaboration. Its fast, intuitive interface makes it easy for people on any team to focus-in on their work on a specific task or project, while also being able to “zoom out” to see how that work is contributing towards the bigger picture. With a simple API and robust set of integrations, Clubhouse also seamlessly integrates with the tools you use everyday, getting out of your way so that you can deliver quality software on time.

Listeners of Podcast.__init__ can sign up for two free months of Clubhouse by visiting clubhouse.io/podcastinit.



Announcements

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
  • Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected])
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing David Kopec about his recent book "Classic Computer Science Problems In Python"

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by discussing your motivation for creating this book and the subject matter that it covers?
    • How do you define a "classic" computer science problem and what was your criteria for selecting the specific cases that you included in the book?
  • What are your favorite features of the Python language, and which of them did you learn as part of the process of writing the examples for this book?
  • Which classes of problems have you found to be most difficult for your readers and students to master?
    • Which do you consider to be most relevant/useful to professional software engineers?
  • I was pleasantly surprised to see introductory aspects of artificial intelligence included in the subject matter that you covered. How did you approach the challenge of making the underlying principles accessible to readers who don’t necessarily have a background in the related fields of mathematics?
  • What are some of the most interesting or unexpected changes that you had to make in the process of adapting your examples from Swift to Python in order to make them appropriately idiomatic?
  • By aiming for an intermediate audience you free yourself of the need to incorporate fundamental aspects of programming, but there can be a wide variety of experiences at that level of experience. How did you approach the challenge of making the text accessible while still being accurate and engaging?
  • What are some of the resources that you would recommend to readers who would like to continue learning about computer science after completing your book?

Keep In Touch

Book Discount And Giveaway

  • Use code podinit19 to get 40% off all Manning products

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA