Final Review

Motivation

The midterm exam is intended to gauge your comfort and facility with the content from the first half of the course. Since the course topics build on each other, confirming you have a good grasp of the foundations and identifying which gaps to shore up now puts you on a solid path to be ready for what comes next.

Logistics

  • The exam is Monday, December from 8:30am - 11:30am. If you are taking the exam room in our main setting (e.g., no special accommodations), you will be taking the exam in CEMEX Auditorium or Dinkelspiel Auditorium.

  • Take a look at where you should go for your exam here!

  • Please make sure to bring your Stanford student ID to the final exam. We will be checking them per requirement of the proctoring study.

  • Students with special circumstances (CGOE, OAE, etc) should see their exam information linked on the above webpage. If something looks funky, reach out to Yasmine immediately because your situation is not in our records, and room reservation and staffing arrangements often do not allow us to accommodate late requests.

  • This exam is on paper, using pen/pencil. You will write your answers directly on the paper exam.

  • The exam is closed-book and closed-device.

    • We will provide a reference sheet to jog your memory about the Stanford library functions.
    • You are not permitted to bring anything to the exam (e.g., no self-made reference sheets permitted) – just a writing instrument.
    • We will provide scratch paper.

Coverage, practice materials

  • Coverage. The exam is cumulative, and will cover everything we’ve discussed throughout the quarter through Week 9. Content during Week 10 will not be tested on the final exam.

  • Format. Most questions will ask you to write a function or short passage of code that accomplishes a particular task. Other questions may ask you to read a provided passage of code and analyze or reason about its behavior. There may also be short answer questions to answer in prose.

  • Practice. We’ve published some practice exams below. They are both in PDF form, and have solutions included. We strongly recommend that you print these out, and take the exam in a realistic setting (i.e. timed, with only your reference sheet available). Then, go back and check your answers with the solutions and make notes of where to target your study!

  • Practice Final Exam 1.

    • Solution
    • Note: There has been some confusion about question 5, specifically about whether nodes are getting appended/prepended in our solution. Our solution is correct, the funky order you’re seeing is stemming from the rehashing process. Rehashing rebuilds the table by scanning the old buckets in order and re-inserting each node into the new table using the same put logic (which again inserts at the head). We didn’t discuss rehashing in depth this quarter, but it’s basically the process of just going through every node in the table in order and performing put again on a new array of doubled capacity.
  • Practice Final Exam 2.

  • Practice Final Exam 3.

  • Additional practice exercises

    • Revisit our section materials. We pack each weekly section handout with many more exercises that fit in the section meeting, so there are plenty of good options there. Section exercises are similar size and scope to those we use for exams (in fact, many section exercises originally appeared on exams in previous quarters).
    • Revisit IG problems. Here is a page with all the problems you worked on this quarter, including starter code and solutions when relevant.
    • The exercises in the textbook are another great source for practice.
    • Question bank from a different offering of 106B. IMPORTANT NOTE: Recursive backtracking is taught slightly differently in these problems. You will not see the choose/explore/unchoose pattern that we have learned this quarter. We will not be teaching the methods described in these problems, so do not be concerned if the solutions look a little bit unfamiliar. The general problem-solving approach presented should still be helpful, though.
  • Review session A group of our fabulous section leaders will lead a review session in the days prior to the exam on [TBD Check back soon for more information]! It will be recorded and posted on Ed after the session for those who can’t make it in person.

Advice

We absolutely want you to come out on top! The lectures, sections, and assignments work together to guide you toward mastery of the course learning goals and the exams serve as an assessment of your progress. The absolute best outcome everyone has a great grasp on the material to nail the exam.

Read on for our advice on how to make that happen for you!

Miscellaneous Resources

Final Thoughts

✨We want you to do well on this exam.✨

See this as an opportunity to show what you’ve learned and display your great efforts in the class this quarter. You’ve worked very hard and learned so much throughout the past 10 weeks! Always remember why you are here! Your efforts to build practice skills and real understanding will take you a lot further than a pristine transcript. If you work hard toward mastery and feel good about your understanding of computer science that is an achievement to be proud of—regardless of how many points you get relative to the other students in the course.