Six Questions for David Kopec, author of Classic Computer Science Problems in Python

By Frances Lefkowitz

David Kopec is Assistant Professor in computer science at Vermont’s Champlain College and author of two books in the Classic Problems series. If you want more, find @davekopec on Twitter.

Read more interviews from our Six Questions series.

Jump into any page of the book from the table of contents on liveBook!

Take 39% off Classic Computer Science Problems in Python. Just enter intkopec into the discount code box at

What makes a computer problem “classic”?

Classic computer science problems are problems typically taught in an undergraduate computer science curriculum. If you mention “The Traveling Salesman Problem,” “The Knapsack Problem,” or “The Towers of Hanoi” to someone who has a CS degree they will instantly know what you are talking about. Once you know them, you can use them as a point of reference to talk about other problems. Often you can solve another problem using a technique from one of the classics. In the book, we stretch the title to include a broad set of problem-solving techniques that anyone who does software development should be familiar with.


Python is the language of choice for so many different industries; do you focus on any particular fields in this book?

We do not focus on a particular industry, but knowing how diverse Python programmers are was an inspiration for the book. One of the audiences we are targeting with the book is self-taught programmers who may not have a CS degree, but are doing productive software development on a daily basis. They may not be familiar with some of the CS problem-solving techniques covered in the book, and we think the book can serve as a great, approachable entry point into the world of CS for people who already have some experience programming but lack that formal education.


You teach computer science at the college level, and you’ve written three books for readers at the beginner-to-intermediate level. What’s the secret to good teaching?

Students today want their education to be hands-on, engaging, and they want their instructors to be approachable. I think we have infused the book with that spirit. We aimed to require as little background as possible, beyond intermediate experience with Python. And the book is code-centric: There is a little theory, but the star of each chapter is the example code that solves the problem at hand.


Manning books are known for their high-quality teaching; did you learn anything from the Manning approach to teaching that you can use in your classroom teaching?

As a teacher, it’s very important to take feedback from your students. You need to understand what is helping them learn and what is holding them back from learning. Manning’s process includes extensive reviews from both internal and external audiences. This feedback helped improve the book. So, I would say that writing these books reinforced the importance of a positive feedback loop.


You have been a guest on several podcasts; what’s the attraction, for you and for listeners?

It’s great to have a well-structured conversation about a technical topic for a fairly niche audience who really understands where you’re coming from. Listeners probably enjoy them for the same reasons. I’ve really enjoyed being a guest on several podcasts to promote the Classic Computer Science Problems series for Manning. I’m on an episode of the Podcast Init that’s just gone live, talking about the Python book. And I will be recording an episode of Talk Python to Me later this month.


What podcasts do you like to listen to?

Tech-wise, I listen to so many, but Core Intuition, The Talk Show, The Internet History Podcast and The Changelog are some of my favorites. I also like the history podcast In Our Time, and some business podcasts, like How I Built This and Masters of Scale.