Exams and tests

AP Computer Science A: a 3-week Java study plan before the exam

Published on October 22, 20265 min read

The AP Computer Science A exam is getting close, and you don't feel confident about programming. In class everything worked, but alone in front of a task you don't know where to start. Three weeks are enough to catch up a lot if you use them well. Here is a plan you can adapt to your class.

First: know what the exam looks like

AP CSA tests Java, and only the part of Java the course covers. According to the College Board's exam page, the exam is fully digital and taken in the Bluebook app:

SectionQuestionsTimeShare of score
I: Multiple choice421 h 30 min55 %
II: Free response4, all written in Java1 h 30 min45 %

The four free-response questions have fixed types: methods and control structures, class design, data analysis with an ArrayList, and a 2D array. You get the Java Quick Reference in Bluebook. It lists the library methods that can appear on the exam, so learn to work with exactly those.

The course is now organised in four units: Using Objects and Methods, Selection and Iteration, Class Creation, and Data Collections. Data Collections carries the most weight in the multiple-choice section. With the revised course, the College Board removed the inheritance unit. Your teacher and the Course and Exam Description on AP Central have the exact topic list, so check it before you start.

Write down three things on a piece of paper: the exam date, the four FRQ types, and the topics you feel unsure about. That is your list for the next three weeks.

Week 1: make the basics solid

Almost every question builds on the same basics. If something wobbles here, it costs you points everywhere. Plan 45 to 60 minutes a day.

  • Days 1 to 2: Variables, types, integer division, casting and conditions. Especially if/else with && and ||.
  • Days 3 to 4: Loops. Counting, summing, repeating until a condition is met, nested loops.
  • Days 5 to 6: Strings and calling methods on objects: substring, indexOf, equals, length. Part B of FRQ 1 involves String methods.
  • Day 7: Writing your own methods with parameters and return values, plus a review of the whole week.

For every topic: read briefly, then solve at least three tasks yourself. Reading alone won't get you points in the exam.

Week 2: classes, lists, 2D arrays, algorithms

Now comes the part where FRQs 2 to 4 get their points.

  • Class design: private instance variables, constructor, methods that use this. See classes and objects. Practise writing a complete class from a short description.
  • ArrayList: add, remove, traverse, and the classic trap of removing elements while looping forward. See lists and maps.
  • Arrays and 2D arrays: row by row, column by column, sums and maximums. See arrays.
  • Searching and sorting: linear and binary search, plus simple sorts like selection sort and insertion sort. See searching and simple sorting.

A typical task is linear search: return the index of a value, or -1 if it isn't there.

public class Main {    static int linearSearch(int[] values, int target) {        for (int i = 0; i < values.length; i++) {            if (values[i] == target) {                return i;            }        }        return -1;    }
    public static void main(String[] args) {        int[] values = {4, 8, 15, 16, 23, 42};        System.out.println(linearSearch(values, 16));        System.out.println(linearSearch(values, 5));    }}
3
-1

Can you write this without a template and explain why return -1 comes after the loop and not inside it? Then the basics are in place. Multiple-choice questions often ask how many comparisons are needed in the worst case. Here it is as many as the array is long.

Week 3: practise like the exam

In the last week you hardly learn anything new. You train the exam situation.

  • Days 1 to 3: Past free-response questions under time pressure. The College Board publishes them with scoring guidelines on AP Central. Four FRQs in 90 minutes means about 22 minutes each. Your teacher may also have multiple-choice practice.
  • Day 4: Output questions. "What does this code print?" is the core of many multiple-choice questions. How to practise it is in practising output questions.
  • Day 5: Go through your mistake list. Which mistakes did you make again and again?
  • Day 6: Review only. Try the Bluebook app's preview for AP CSA if you haven't, so the exam app isn't new on the day.
  • Day 7: Rest. A good night's sleep brings more points than an all-nighter.

Don't expect the exam app to work like your IDE. From now on, write each solution first without autocomplete or by hand, and only then run and check it. Tips for this are in writing Java without an IDE.

What a study session looks like

A good hour has a fixed structure:

  1. 5 minutes: What was hard yesterday? Solve one of those tasks again.
  2. 10 minutes: Read the new topic briefly, type in one example and run it.
  3. 35 minutes: Solve three or four tasks yourself, from easy to hard.
  4. 10 minutes: Write down the mistakes you made.

What matters is that you type and think yourself. If you only read solutions, you recognise them, but you can't write them.

Where Jario helps

For weeks 1 and 2 you mainly need one thing: lots of tasks with fast feedback. Jario runs in your browser, also on a family laptop or a school computer, without anyone having to install anything. If your class uses an IDE you don't have at home, read practising class material at home.

Tasks go from "Easy" through "Medium" to "Hard". With "Check" you see straight away whether your solution is right, for example "3 of 4 tests passed". If you get stuck, the AI tutor gives you a hint, not the solution. For week 3 you can turn off autocomplete and write almost the way you will in the exam. Jario has no past AP questions and no timed exam mode, so use the College Board's material for that.

The first two chapters are free with an account. That covers the first days of week 1.

In short

  • AP CSA: 42 multiple-choice questions and 4 free-response questions in Java, 90 minutes each, in Bluebook.
  • Week 1: basics. Week 2: classes, ArrayList, 2D arrays, searching and sorting. Week 3: past FRQs under time.
  • Solve tasks yourself every day instead of only reading.
  • Practise writing code without autocomplete and without running it first, then check it.