Midterm Exam Information

Written by Lisa Yan and Nick Troccoli, based on documents by Julie Zelenski, Nick Bowman and others

Date/Time:

Tuesday, November 1st, 7PM-9PM

Location: Last Names A through L: 320-105
Last Names M through S: 200-002
Last Names T through Z: 420-041

Review Session: Sun. 10/30, 8-9PM (Zoom, link here)


Please visit our midterm grading and solutions page here for information about the exam solutions, statistics, how to see your score, and information about regrade requests.
If you have academic accommodations, e.g. through OAE or athletics, or if you do not have a workable laptop for the exam, please let us know by Wednesday 10/26 @11:59PM PST. Limited charging outlets will be available during the exam.

If you have an academic or University conflict with the midterm time, and absolutely cannot make the regularly scheduled midterm, you must send a request by email to the course staff by 11:59PM on Wednesday, 10/26 to arrange an alternate exam time. Please include in your email all the possible times you are able to take the exam from Monday, October 31 to Wednesday, November 2. Any alternate midterm exam must be within this window.

Overview

The midterm exam is intended to gauge your comfort and facility with the course material so far, as well as assess your mastery of the course learning objectives. Since the course topics build on each other, confirming you have a solid grasp of the foundational material now ensures you are equipped to tackle the later concepts to come in the course.

We provide the exam as a tool to take stock of where you're at and see how much you've learned in the first half of the course, as well as what work you have left to do. It also contributes a small but meaningful contribution to your course grade, which we hope will inspire you to use this checkpoint opportunity wisely!

The exam has a particular emphasis on material that was prominent in the lectures, assignments and sections.

Please make sure to thoroughly read all information contained on this page to ensure you understand the midterm logistics, requirements and restrictions.

Logistics

The exam is closed-book. You may bring a double-sided US-Letter-sized (8.5"x11") page of your own prepared notes. The exam will include a digital and physical reference sheet of essential details such as prototypes for system calls (e.g., waitpid, fork, execvp).

Course staff will be proctors at the exam to answer clarification questions.

You will take your exam electronically, using our custom BlueBook exam software, which you can run on your computer if you have one. BlueBook is a full-screen exam-administration application that provides syntax highlighting capabilities but does not provide the ability to run code. If you do not have access to a laptop for the exam that can run BlueBook, please contact the course staff. You cannot access digital notes, run other applications (such as Terminal or other myth SSH tools), use the Internet, nor use any other electronic devices during the exam.

We know that BlueBook is not the same as working with a compiler as you do on Myth, and we account for that in how we design and grade the exam. We are assessing your ability to think logically and use appropriate problem-solving techniques. We expect you to express yourself in reasonably correct C/C++, but we will be lenient with errors that are syntactic rather than conceptual.

See the downloads section below for how to download and use BlueBook.

Unlike the assignments, the exam is strictly individual work.

During the exam, you may use/reference:

  • a double-sided US-Letter-sized (8.5"x11") page of your own prepared notes.
  • a provided reference page of essential details such as prototypes for standard library functions (e.g., waitpid, fork, execvp). This is included digitally in the exam.
  • provided blank scratch paper (we will provide this at the exam)

You are not permitted to use any other materials, such as printouts (notes, slides, code, practice exams, etc.), other textbooks, or electronic devices (iPads, Kindles, calculators, music players, etc.) other than using your computer, which must be used solely to run the BlueBook software.

The exam may be a mix of short answer, multiple choice, code reading, code writing, etc. questions.

If you want to try out a BlueBook exam, there is a Practice BlueBook exam listed in the practice materials below.


Material Covered

The midterm is intended to assess your understanding of the content covered in the first half of the course. The coverage is through the topics relevant for section4 and assign4 (i.e., through multithreading material for assign4). Material on multithreading will be slightly less heavily emphasized than other topics as assign4 is not due until after the exam, and you are not required to have completed any of assign4 before the exam.

The priority is on material that figured prominently in the assignments, sections, and lecture. In particular, we highly recommend revisiting the sections and assignments!

We'd love to see the discussion forum come alive in helping everyone make the most of this opportunity to review what we've covered so far and rock the midterm – this is a great place to ask and answer unresolved questions, discuss conceptual issues, share techniques and materials you are finding useful as preparation, and support and encourage each other.


What To Bring

The exam is on your computer. You should bring:

  • Your laptop and charger
  • The device you use for two-step authentication
  • your physical double-sided page of notes
  • A power strip/extension cord (optional, but recommended if you have access to one)

Honor Code

The exam is to be completed individually and without any assistance from a partner or other students. Follow the Stanford Honor Code (see link on main course homepage) during the exam: submit only your own work, do not use unpermitted aids on the exam, and say something to the instructors or students in question to prevent any inappropriate activity conducted by others surrounding the exam.

Grading

For coding questions, the majority of the points are typically focused on the correctness of the code. However, there may be deductions for code that is roundabout, awkward or inefficient when more appropriate alternatives exist. We will reward the simple, direct approach for its good design decisions and such code will likely have fewer correctness issues, so the choice of appropriate design can have a large impact. For example, we expect you to leverage appropriate features from the standard libraries; re-implementing that functionality wastes your valuable time and introduces opportunity for error.

Note that certain problems may have certain constraints (such as only using certain material, etc.) that you must follow to earn full credit. These constraints are not intended to make things difficult; typically, we are trying to guide you in the direction of a more straightforward solution. If you disregard these instructions, you are likely to lose points, either for not meeting the problem specification and/or for errors introduced when attempting a convoluted alternative. We reserve the right to deduct points for extremely inelegant or inefficient code that dodges the spirit of the problem.

  • You are not required to write #include statements. Please do not abbreviate any code (such as writing "x2" next to code to copy it twice). Abbreviated code will not be graded.
  • Pseudo-code (writing English sentences and phrases instead of code) will typically earn little to no points. For example, writing "In this part of the code, I want to open the file and read each line and print it" will not earn any points.
  • You should include your answer, as well as any scratchwork, in the text area for each problem. An answer to a problem not in the designated answer pages for that problem will not receive any credit.
  • Unless otherwise specified, it is fine to write helper functions to implement the required behavior.
  • Style and decomposition are secondary to correctness. The correctness of the answers dominates the grading. Decomposition and style are thus somewhat de-emphasized. However, good design may make it easier for you to get the functionality correct and may require less code, which takes less time and provides fewer opportunities for error. Comments are never required unless specifically indicated by a problem. When a solution is incorrect, commenting may help us determine what you were trying to do when we attempt to give partial credit.
  • We are lenient on syntax. We won’t trouble you about most small syntax errors (forgetting semicolons or spaces, for example) as long as your intentions are clear. Having said that, beware that if your syntax errors cause ambiguity (e.g. very unclear curly braces), we might not get the correct meaning.
  • The majority of the points for a problem will be reserved for grading the critical core of the code. For example, if we ask you to write a function that iterates over an array and spawns child processes, only a tiny fraction of the points will be allocated to tasks such as iterating over the right bounds, while the bulk of the points will be gained or lost in the tricky details of whether you correctly handle the processes. Be sure to focus your attention accordingly!

Downloads

BlueBook Download / Usage Instructions

Exam Reference Sheet:

PDF
Note: the reference sheet is included as the last "problem" in the BlueBook exam. You will be provided with a hard copy as well during the exam.

Practice Materials:

Guide for how to approach and succeed on CS111 exams.

Practice 1: BlueBook | PDF | Solutions
Password: starburst
This exam is the same length as the exam given this quarter (2 hours). Note: the practice BlueBook exam is configured with an infinite time limit. You cannot close BlueBook and come back to work on the exam later - you must complete it in one sitting. If you'd like to check your answers, leave BlueBook open while you do so. You may submit the practice exam when you're finished if you'd like to see the submit process, but it will not be accessible anywhere. Note that for security reasons, BlueBook disables copy/pasting into or out of BlueBook. You can copy/paste within BlueBook, however.

CS110 Practice Problems (filesystems / file descriptors): click to view.
Note: Questions 5a, 5b, 6e and 8a are used in the BlueBook practice midterm above. The following questions can be ignored: 5c, 5d, 6c, 8b.

CS110 Practice Problems (multiprocessing): click to view.
This page contains questions/answers inline mostly regarding file descriptors and multiprocessing. Note: the following questions can be ignored: 2, 5

The practice exams below were taken from prior quarters of CS110 and CS111, and administered for varying lengths of time. Not all problems are relevant to the material covered this quarter - the notes below each exam indicate which problems cover CS111 material this quarter.

CS110 Practice Midterm 1: PDF | Solutions
Note: Questions 1a, 1b, first part of 2a, 3 and 4d are used in the BlueBook practice midterm above. The following questions can be ignored: 2b, 4a, 4b, 4c

CS110 Practice Midterm 2: PDF | Solutions
Note: Questions 1 and 2e are used in the BlueBook practice midterm above. The following questions can be ignored: 2a, 2c, 2d, 2f, 2g, 2h, 2i, 2j

CS110 Practice Midterm 3: PDF | Solutions
Note: the following questions can be ignored: 2d, 2e, 2f, 2g

CS110 Practice Midterm 4: PDF | Solutions
Note: Question 3a is used in the BlueBook practice midterm above. The following questions can be ignored: 2, 3b, 3d, 3e

CS111 Spring 2021 First Midterm: PDF | Solutions
Note: the main question that is relevant to our discussions this quarter is problem 6; however, this is a more intensive multithreading question than would be asked on this quarter's midterm as we have not yet completed the multithreading assignment.

CS110 Practice Final 1: PDF | Solutions
Note: the main question that is relevant to our discussions this quarter is problem 3; however, this is a more intensive multithreading question than would be asked on this quarter's midterm as we have not yet completed the multithreading assignment.

CS110 Practice Final 3: PDF | Solutions
Note: the main questions that are relevant to our discussions this quarter are problems 1, 4b, and 4f (though this is a slightly more intensive multithreading question than would be asked on this quarter's midterm as we have not yet completed the multithreading assignment.)

You can do it!