Logistics

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

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

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

Final
Mon, Mar 14th
8:30-11:30am
By last name
Practice Final Sitting
Sat, Mar 12th
11am-2pm
Hewlett200

Topics

The final covers the material presented in class from the start of class through the lecture on Friday, March 4th. 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. Specifically, there will be five or six questions on the exam.

  1. The first question will ask you to trace a program or algorithm and reason about Big-0. You will only be responsible for determining Big-O of iterative functions, not recursive ones. You are responsible for knowing the Big-O of the collection classes (eg Maps Vector etc).
  2. Write a recursive function
  3. Implement a class
  4. Write a Linked List function or a function that uses hashing.
  5. Write a function that operates on Trees
  6. Write a function that operates on Graphs

I put together a few handouts on topics that I thought could be explained in a simple way. For the other topics (eg Trees and Graphs) the book does a good job of explaining them:


Strategies

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

Here are two practice exams that I think are demonstrative of the sorts of questions I could ask. The first one was written by Eric Roberts, the second one I wrote as a final exam Summer 2011.

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.

In addition you can also take these exams from previous quarters. Marty (who taught CS106B in the Autumn) has a great collection of previous exams. Every section we post a lot of extra problems to work on. They are great practice for the final.