Midterm 2 Exam

The exam will be from 7-9:10 PM Thursday, March 15th.

Please arrive by 7:00 PM. We will start promptly at 7:10 PM.

The midterm exam will be held at many locations across campus. We will email your room and seating assignment for the exam to your CalCentral email address Wednesday night before the exam. If you arrive late or go to the wrong room, you will not be given additional time.

If you do not receive your seating assignment by Thursday morning, please make a private post on Piazza to let us know.


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

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.

Both the Midterm 1 Study Guide and the Midterm 2 Study Guide will also be provided along with the exam. Familiarize yourself with the study guide so you know where to find information and how to apply each rule during the exam.

Scratch paper will be provided but we will not grade your scratch work. You will write your answers on the exam itself.

Topics Covered

The exam will cover all course topics through Chapter 2.9 of Composing Programs, except for Newton's method (1.6.5), decorators (1.6.9), implementing lists & dictionaries (2.4.7), dispatch dictionaries (2.4.8), propagating constraints (2.4.9), and implementing classes and objects (2.6). This includes all content up to Friday's lecture on Tree Sets.

Particular emphasis will be given to mutable data, object-oriented programming, tree recursion, and recursive data (such as linked lists and trees).

You should be prepared to answer questions that relate closely to the projects and homework assignments (not including challenge problems). You should also know how to draw an environment diagram by hand but will not be tested on object-oriented diagrams.


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

Also, forming study groups is a very effective strategy for enhancing learning. We know this class is huge so we've made a Piazza post to help you find study buddies!

Past Exams

See resources page for past exams, solutions, and video walkthroughs.

Lab and Discussion

Lab 8 will be held as usual and covers linked lists and orders of growth. There will be no lab check-off next week so you do not need to attend in person, but we highly recommend completing the lab before the midterm as it contains exam review material.

There will be no discussion next week. Some TAs may host optional review sessions during their regular section times. They will send an email to you if they plan on organizing a review activity during their regular discussion section time.

HKN Midterm 2 Review Session

7-10 PM Sunday, March 11 in HP Auditorium

The format will be slides reviewing the concepts, followed by example questions. See https://piazza.com/class/jc559y99w0i4jj?cid=1009.

CSM Midterm 2 Review Session

5-7 PM Saturday, March 10 in A1 Hearst Annex

See https://piazza.com/class/jc559y99w0i4jj?cid=993. The format will be slides reviewing the concepts, followed by example questions. We will be going over the following topics, in this order:

Seating Request

If you have a seating request, fill out this form by Monday @ 11:59 PM.


If you have DSP accommodations, you should have already received an email. We will send a confirmation email on Wednesday with room assignments.

If you have any other conflicts, please email cs61a@berkeley.edu. As stated in the policies we will not be giving alternate exams for any other reason, but if you have a valid excuse, we will excuse you from the exam and use only your Midterm 1 and Final Exam scores to give you a final course grade.