- Time: 6:00-9:10pm Thursday 8/9 (exam will start promptly at 6:10 pm)
- Location: Various rooms on campus
The exam consists of only an individual section. You must bring your UC Berkeley student ID. We will be performing ID checks during the exam. Students who cannot be identified will be photographed for later verification.
Seat assignments for the individual section will be released the day before the exam. If you would like a left-handed desk or have another seat request, please fill out this form and we will attempt to accommodate.
The exam is closed book, closed computer, and closed calculator. You do not need to bring anything except for a writing utensil and UC Berkeley student ID. We recommend using a pencil on the exam, since you may need to erase some things.
You are, however, allowed to bring two sheet of notes (front and back) that you create yourself. This sheet 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, Midterm 2 Study Guide, and Final 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. Just a reminder that these are from previous semesters and may not be up to date.
The exam will cover all course topics of Composing Programs, except for:
- Newton's method (1.6.5),
- The linked list data abstraction (2.3.7)
- Implementing lists & dictionaries (2.4.7)
- Dispatch dictionaries (2.4.8)
- Propagating constraints (2.4.9)
- Implementing classes and objects (2.6)
- Linked list class (2.9.1)
- Sets (2.9.3)
- Recursive select statements (4.3.5)
- Unification (4.5)
- Distributed computing (4.6)
- Distributed data processing (4.7)
- Parallel computing (4.8)
You should also know about mutable functions, mutable lists, tail recursion, and streams all in Scheme. What Would Scheme Display questions are also fair game. Lectures on 8/1, 8/2 and 8/7 are conceptually in scope.
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 or stream diagrams.
The best way to study for the midterm is to work through practice problems. The course staff has put together the following resources:
- Studying Guide
- Resources: The past finals that the staff think are most relevant are the Spring 2018, Fall 2017, Summer 2017, and Summer 2016. See Recommended study plan for which questions on these finals are in scope.
- Labs and discussions (and solutions) from the course website
- Python Tutor for drawing environment diagrams
Topical review sessions: There will be staff-led topical review sessions on Saturday 8/4 and Sunday 8/5. See links.cs61a.org/topical-review-sessions.
Office Hours: We will have extra office hours on Sunday 8/5. See office hours schedule for the updated hours.
Mock Exam: There will be a mock exam Monday 8/6 11 - 12:30 PM in 155 Dwinelle. This will be an abridged version of what you might expect on the final exam and will mimic an exam setting.
Sections: Lab sections on Monday 8/6 and Tuesday 8/7 will go over the mock exam. Discussion sections on Tuesday 8/7 and Wednesday 8/8 will be turned into fun extra topic sections. You do not have to attend any of these sections, everyone will get three free participation credits.
There will be no lab or discussion the second half of the week.
Mentoring: Group mentoring sections for the second half of the week (prior to Wednesday's lecture) have been canceled. Drop-in sections are also cancelled.
Students taking alternate exams (including DSP exams) should have been notified with their time and room. If you have not heard from us by this Sunday, please email email@example.com. If you are requesting an alternate, please email firstname.lastname@example.org with proof of conflict.