The exam will be from 3-6 PM Wednesday, December 13.
Please arrive by 2:50 PM. The exam is scheduled to start at 3:00 PM (not 3:10). If you arrive late, you will not be given additional time.
The final 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 the day before the exam.
If you do not receive your seating assignment by Wednesday morning, please make a private post on Piazza to let us know. If for some reason you don't know your seat assignment when the exam is starting, please come to 150 Wheeler Hall.
Bring writing utensils and a photo ID. You may also bring three 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 Midterm 1 Study Guide, Midterm 2 Study Guide, and Final Study Guide will also be provided along with the exam. Familiarize yourself with the study guides so you know where to find information during the exam.
Aside from these notes and guides, the exam is closed book, closed notes, closed computer, and closed calculator. You may not use any electronic devices.
Scratch paper will be provided but we will not grade your scratch work. You will write your answers on the exam itself.
You are responsible for the sum total of human knowledge from the beginning of recorded history, with particular emphasis on the content of this course. Historically, we don't really have time for much other than course content.
We are reasonable, of course: you can expect that the exam will cover all course topics, which includes all 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)
- Logic programming (4.4)
- Unification (4.5)
- Distributed computing (4.6)
- Distributed data processing (4.7)
- Parallel computing (4.8)
The textbook and lecture differ substantially in their descriptions of iterators (4.2.1), iterables (4.2.2), and streams (4.2.6). Please study the lecture examples rather than the textbook.
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.
The best way to study for the final is to work through practice problems. The course staff has put together the following resources:
- All resources on cs61a.org, especially the Resources page. There are exam questions filtered by topic under each topic header.
- Studying Guide for learning strategies and problem-solving tips
- Python Tutor for drawing environment diagrams
- Topical review sessions will be held during dead week. A TA will review the topic and go through practice problems. We won't have office hours this week, but feel free to come to these review sessions with any questions.
- UPE, HKN, and CoE all offer free drop-in tutoring
- Functions and Control
- Environments and HOF
- Mutable Trees
See Resources for past exams, solutions, and video walkthroughs.
Final Review Guerrilla Section
7-9 PM Monday, December 4 in 145 and 155 Dwinelle and A1 Hearst Annex
The course staff are hosting an intense, rapid-learning environment called a guerrilla section. Unlike lecture-format review sessions, in a guerrilla section, you'll solve problems first as much as you can on your own, and then share your approach and ideas with other students.
HKN Final Review Session
7-9 PM Tuesday 12/5 in HP Auditorium (306 306 Soda Hall). It will cover MT1, MT2, and post MT2 topics.
CSM Final Review Session
CSM will hold two final review sessions.
Monday 12/4 12:00pm-1:00pm in the Wheeler Auditorium. Topics:
- General Scheme
- Tail Recursion & Interpreters
Wednesday 12/6 12:00pm-1:00pm in the Wheeler Auditorium. Topics:
- Iterators & Generators
- Linked Lists and Trees
Students are encouraged to bring their laptops to the review session so that they can better follow along.
If you are scheduled to take the final at a different time and/or location, either because you have already requested an alternate time or you have DSP accommodations, you should have already received an email. We will send you a confirmation email on Tuesday with room assignments.
If you have any other conflicts, please email firstname.lastname@example.org. We will not offer alternate exams to students who have three or four finals on Wednesday.