Midterm 1 Information

Motivation

The midterm exam is intended to gauge your comfort and facility with the content from the first unit of the course (Intro to C++ and ADTs). 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

  • Midterm 1 is Wednesday October 14, 7-8:30pm PT.
  • We will be spread across several rooms, and you will be assigned a specific seat in a specific room, so keep an eye on this space to see your assignments. You don’t want to show up to the wrong place, reducing your time to complete the problems while you run over to the right place!
  • Students with special circumstances (e.g., CGOE, OAE, varsity athletic conflicts) should have received an email from Head TA Tommy confirming you will receive special arrangements by the beginning of Week 3. If you have not received an email from him by that time, reach out ASAP.
  • 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 may bring one page 8.5"x11" of your own notes (in addition to the reference sheet we provide). We won’t require you to make it handwritten this quarter, but will trust you that your font size is something that reasonably approximates the amount of informatino a handwritten note sheet could accommodate (no microfiche (!)).
    • You are not permitted to bring scratch paper (not even blank scratch paper) or any paper other than the one sheet of notes. The exam will have designated space for scratch work.

Coverage, practice materials

  • Coverage. C++ basics, variable types (int, double, string including common string functions), ADTs (Stanford library Vector, Stack, Queue, Map, Set, Grid), Big O, the test cases framework we use on assignments, and generally anything through lecture 6 and assignment 2 (no recursion).

  • Format. A mix of multiple choice, short answer, and writing a function or short passage of code. Other questions may ask you to read a provided passage of code and analyze or reason about its behavior.

  • Review Session. There will be a review session. It will go over solutions to one of the practice exams (noted below), so if you want to try it “fresh,” be sure to do that before the review session.

  • Paper Practice. We strongly recommend that you print out at least one practice exam and take it on paper under time pressure with only your reference sheet. That way you have a realistic calibration about what to expect on actual “game day.”

  • Practice. Practice exams are given below. Note that in previous quarters, there was only one midterm (later in the quarter) and it included the topic recursion, which is not on our exam. For realism, we want to provide you the actual previous exams as practice, but they will have this coverage issue of including recursion. When it comes up, you can skip those problems (until Midterm 2).

  • 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).
    • The exercises in the textbook are another great source for practice.

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 so far. 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.