Distribution

Students did well on this exam. I wrote it to be a litmus test of whether or not you know the concepts that we have covered so far in class. Overall this looks healthy.


Solutions

Here is the exam and the exam solutions:

Special note: a handful of students who took the exam early had a slightly different version of question 4 (and for some the question was out of 20 points). We built a rubric that scaled for the difficulty of the problem.


Regrade Requests

Sometimes we make mistakes grading. If you notice something wrong with your midterm, we can regrade it. However you must follow these instructions:

  1. Write a cover sheet explaining what you think went wrong and why
  2. Bring the exam (with cover sheet) to class
  3. We reserve the right to regrade your entire exam
  4. Your answer must be unchanged. We scanned 20% of the midterms.

The deadline to submit a regrade request is Feb 24th


Logistics

The CS106B Midterm is Tuesday Feb 9th from 7pm to 9pm. If you have unavoidable conflicts with this time, please email Megan (mfaulk@stanford.edu) by Thursday, February 4th at 12pm. You should explain the reason for your conflict and include all times that you're available to take the exam on Tuesday, Feb 9th and Wednesday, Feb 10th. If you require OAE accommodations, you should also 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.

Midterm
Tue, Feb 9th
7-9pm
By last name
Practice Midterm Sitting
Sun, Feb 6th
10am-12pm
Bishop Auditorium

Topics

The midterm covers the material presented in class through the lecture on Monday, February 1. Specifically you will be responsible for:

  1. Functions and Pass by Reference
  2. Use of Collections (Maps, Sets, Stacks, Queues, Vectors and Grids)
  3. Recursion (Definition and Fractals)
  4. Recursive Exploration and Backtracking
  5. Big O

The bulk of the midterm will be build on the concepts you covered in the assignments you have completed up to this point in the course (Life, Serpinski and MetaAcademy).

There will be four or five questions on the exam. The first question will ask you to trace a mystery function and determine runtime Big-O. You will only be responsible for determining Big-O of iterative functions, not recursive ones. We will ask you to read or implement tasks that use collections. We will ask you to read or implement tasks that require recursion (and most likely recursive exploration).

Things that will not be on the midterm (you may see them on previous practice exams): structs, pointers, defining classes or linked lists.

We put together handouts on the topics which we will expect you to know:


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:


Review Questions

I will post two practice exams of problems that I think are representative of the ones I have written for Tuesday's exam. The solution to the first practice exam and the second practice exam will be posted on Sunday!

In addition you can also take these exams from previous quarters. My exam format is most similar to Keith and Jerry. Importantly our exam is a week earlier than Marty's and does not cover linked lists.