Algorithmic Problem Solving with Python John B. Schneider Shira Lynn Broschat Jess Dahmen April 21, 2013