Books Data Structures and Algorithms in Python-Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides