Miller, Bradley N. & Ranum, David L. Problem Solving with Algorithms and Data Structures Using Python - 2nd ed. - Franklin, Beedle & Associates. 2011 ISBN: 9781590282571