Table of Contents

1. Introduction

Your performance on 61A Exam can be improved with practice and by spending additional effort to master the course material beyond just completing assignments. Following the lectures and doing homeworks/discussions is definitely useful, but probably is not quite enough. Maybe that wasn't the case in your high school or community college — certainly it wasn't the case for me. To do well in this and similar CS classes, I had to re-engineer the way I study, and I am still in the process of doing so in my junior year. As I asked around, I found that many students who went through 61A (including staff members) had to optimize their study process. This improvement of study strategy was something discussed on office hours, small piazza posts, 1-to-1 conversations with TAs, brainstorm session with your study group and etc., but not in an official manner. It is important to discuss since no one should get discouraged from pursuing computer science simply because of studying inefficiently. As many things in this world, studying (and getting good results on exams) is a skill: it can be picked up and improved. So here we go.

2. The Basics

First of all, let's set the basic expectations. Here is the list of things you should do as a student in this course. Without them you will lack the basic foundation for further exam preparation.

1) Watch Lectures/Read Textbook/Go through slides

Learning the information through lectures/textbook/slides is important, but note that these are examples of passive learning, and further practice by solving problems is essential for deeper understanding.

2) Attending tutorials + discussions

It is recommended to be proactive and engage with your group when solving a problem. It does not matter that your approach might not be correct for solving a particular problem — as long as you are involved and trying, you are fine.

Being right is good, but being wrong shows you're thinking and trying. You only learn what will truly work after being wrong many times. — Addison Chan

3) Completing Homework/Labs/Projects

If you did not really understand some concept/problem or had to brute-force or guess the solution, write down this question somewhere. Once every two weeks come to office hours with your list of questions and walk through each problem with tutor/TA who can help to resolve any misunderstanding.

Here is the spreadsheet you can copy and use for these purposes.

<aside> 💡 Note about extra questions on assignments: some of you might notice that we often draw the inspiration from "extra" questions when writing the actual problems. Therefore, it might be a good idea to treat these "extra" questions as required ones, even if solving them won't give any points. These questions provide something more important — practice. If it motivates you more, you can also assume that everyone else completes these extra questions on every single assignment.


We strongly recommend you to take these three steps to gain a better understanding of the material and treat them as the very basics before starting an exam preparation. Please reach out to staff or come to advising office hours if you are missing one or more of these components. However, it is not to say that you have to earn full scores on everything or fully understand the lectures from the first watch. The point is that there are some extra steps apart from these three that you should take to absorb the material better.

3. Exam Preparation

Exam preparation can be broken down into three "phases" where each one has its own timeframe and tasks to complete.

3.1. Phase I — Conceptual Understanding