Introduction to Computer Science and Programming (Spring 2011) - John Guttag