I considered this website a personal gift as I discovered it just weeks before my students were scheduled to take their AP Computer Science exams. This site (created by Nick Parlante at Stanford) provides students with dozens of great practice problems with immediate feedback concerning all possible test cases and which were successfully handled and which were not. It has exercises in Recursion, Arrays, Strings, Logic, and even a section based on AP CS free response questions from years past. Great for homework, in the lab, as lecture examples, or for self-study. Now if only someone would create such a site for teaching Python!