An Invitation to Computer Science, 2nd Edition