To alleviate time pressure, you will have 2 hours and 50 minutes to complete the midterm. However, the midterm will still be roughly the same length as midterms in previous semesters, which were 2 hour exams.

You must bring your UC Berkeley student ID. We will be performing ID checks during the exam. If you do not have a UC Berkeley student ID card, bring a valid government-issued identification. Students who cannot be identified will be photographed for later verification.


The exam is closed book, closed notes, closed computer, and closed calculator. You do not need to bring anything except for a writing utensil and UC Berkeley student ID.

You are, however, allowed to bring two sheets of notes (front and back) that you create yourself. These sheets must be handwritten and you may not share them with anyone else. The purpose of these restrictions is to provide an additional opportunity for you to practice since many students have remarked that the process of compiling a note sheet helped them greatly when studying for the exam.

In previous semesters, the staff provided a Midterm 1 Study Guide along with the exam. Most students find that this is not useful, so we will not provide it and instead include relevant information on the exam itself. However, you are welcome to transfer any information from the study guide that you think may be useful to your note sheets.

Because most previous semesters have had two midterms, parts of the Midterm 2 Study Guide may also be relevant for this midterm. Again, we will not provide it, but feel free to copy anything from the study guide to your note sheets.

Topics Covered

The exam will cover all course topics through Chapter 2.3, as well as Chapter 2.4.1, 2.4.2, 2.4.3 and Chapter 2.8, of Composing Programs, except for Newton's method (1.6.5), decorators (1.6.9), Measuring Efficiency (2.8.1), and Memoization (2.8.2). This should align with the first three weeks of lecture plus Mutable Data but not including Mutable Functions.

Particular emphasis will be given to user-defined functions, iteration, higher-order functions, recursion, linked lists, trees, and mutable data.

Unlike previous semesters, the exam will include a multiple-choice environment diagram similar to the format seen on quizzes except with a more complete partial credit rubric in case a frame was dropped or called out of order.


The best way to study for the midterm is to work through practice problems. The course staff has put together the following resources:

Review Session: There will be no lecture on Thursday 7/13. On Wednesday 7/12 there will be a staff-led review session in the normal lecture time and place (11-12:30 in 2050 VLSB).

Office Hours: Office Hours after 2 pm on Thursday have been cancelled. See the office hours schedule for this week for the updated hours.

Sections: Discussion sections on Thursday 7/13 and Friday 7/14 have been cancelled. All other sections this week, including Thursday morning labs, will still be held as normal. Lab 7 will be an optional review lab with solutions available before the usual release date.

Mentoring: Group mentoring sections on Wednesday 7/12 and Thursday 7/13 have been cancelled.

Make-Up Exam

If you are scheduled to take the midterm at a different time and/or location, either because you have already requested an alternate time or you have DSP accommodations, we will send you a separate email with additional details.