New: The solution to the first practice final, and the second practice final have been posted (Dec 7th). We included some extra practice questions.


The CS106B Final is Monday December 12th from 8:30am to 11:30am. If you require OAE accommodations, you should email Anton by Wednesday at 12pm with your availability and the accommodations you require. If you haven't already sent him your OAE documentation, please attach that to the email.

The exam is split into two locations. The location of your exam is based on your last name:

The exam is open book, open notes, closed computer.

Mon, Dec 12th
By last name


The final covers the material presented in class from the start of class through the lecture on Friday, December 2nd. Specifically you will be responsible for:

  1. Functions and Pass by Reference
  2. Use of Collections
  3. Recursion
  4. Recursive Exploration and Backtracking
  5. Big O
  6. Pointers
  7. Classes and Structs
  8. Linked Lists
  9. Hashing
  10. Trees
  11. Collections Implementations
  12. Graphs

The bulk of the final will be built on the concepts you covered in the assignments, especially the concepts on the assignments starting from Boggle.

Here are some review materials for some of the concepts on the Final Exam. This isn't an exhaustive list (for example it doesn't cover linkedlists / trees or graphs). See the book for a review of all concepts:


Exams are exciting, and a good chance to learn. Sometimes they can feel competitive. Remember though that in the long term you aren't competing against the other people in the classroom. In fact they will probably be your team mates in the post Stanford world. The only race is with yourself. We don't curve the exam. If everyone does a great job of demonstrating that they understand the material, everyone will get a better grade.

Here is a printable handout with a complete list of all CS106B library functions you may find useful on the exam and a handout on exam strategies:

Practice Finals

There is no better way to prepare for the final than a lot of practice. Make sure to work on problems without looking on the solution. It's much easier to verify that a correct solution works then it is to write it yourself.