A Problem Solving Approach To Mathematics by Shlomo Libeskind & Rick Billstein