To help you prepare for the final exam - and, more generally, to assist you with learning the material over the rest of the quarter - we have put together a searchable bank of practice problems for you. You can select which topics you're interested in getting more practice with, as well as filter the problems down to those with starter files, those that were used in past exams, those we particularly like, and those we think are great if you're up for a challenge.
We have also compiled three practice final exams from this bank of problems. Each of the sets of problems described below are calibrated to have approximately the same length, difficulty, and topic coverage of the actual final exam. To work through these, we recommend doing the following:
- Block of a three-hour time window, the same way that you would for the real final exam.
- Work through the problems on pencil and paper, just as you would for the actual final exam itself.
- After finishing, type up your solutions for the problems that have starter code and run the provided tests to see how your solution fares. If your solution doesn't work, take some time to debug and see what your errors were.
- Read over the solutions to see our approach to solving each, as well as to learn a bit more about how to approach each of these problems.
Practice Final Exam 1
Practice Final Exam 2
- Avoiding Sampling Bias
- Leapfrog Hashing
- Data Structure Sleuthing
- The Classic Interview Question
- Agglomerative Clustering