Note: The course has undergone changes over the past years, so certain exam questions may not be relevant. Still, past exams can provide you with practice in those areas that are relevant.
Past programming exams:
No solutions will be given for past programming exams. The best way to prepare for a programming exam is to practice past exams in a timed environment.
Princeton also has a large collection of past programming exams available here.
Note their exams are 50-minutes while ours are 100-minutes.
Also note that this is a second course in computer science and thus we cover more advanced programming concepts than Princeton's course.