Learn Java, Pass The AP
The Easy Way

Interactive lessons. Socratic tutor, No paywall,
Master AP CSA.

Start Learning — it's free
⚡ Practice — answer every question to complete the lesson
Q1Code Tracing Ask AI
What does this print?
String a = "cat";
String b = "cat";
System.out.println(a.equals(b));

Our Curriculum

Why CSA Compass

Most resources teach Java. CSA Compass teaches the exam.

Every lesson, practice question and mock exam is built around the AP Computer Science A course — starting from zero programming experience and ending at exam day. Nothing you study here is off-syllabus, and nothing on the exam is left out.

Built for one exam

Eleven phases, from first setup to searching and sorting, in the order that makes each idea land — not a general Java tutorial you have to translate yourself.

Guided, not given

The tutor already knows the question you're stuck on, so it asks the question that gets you there instead of handing over an answer you'd forget by tomorrow.

Knows your weak spots

Your accuracy is tracked per topic as you answer, so the weakest areas surface first and revision goes where it actually counts.

If you have any questions, Ask AI

Assistive learning to teach, not give the answer

⚡ Practice — answer every question to complete the lesson

Q1Multiple Choice
How do you get the number of elements in an ArrayList list?
Compass Tutor
Question 1 · Multiple Choice
Stuck? I'll help you think it through with hints and guiding questions — I won't just hand over the answer.

Then you write the code yourself

Free-response projects that compile and run in the browser — nothing to install

Build

Employee and Manager

An Employee stores a name and a base pay. A Manager is an Employee who also earns a bonus — it calls the superclass constructor instead of storing those itself, and overrides getPay. Write describe once, in Employee, and let the override do the rest.

What to write
public Employee(String name, int basePay) public int getPay() public String describe() public Manager(String name, int basePay, int bonus)
Examples
CallReturns
new Employee("Ada", 100).describe()Ada earns 100
new Manager("Bo", 100, 50).getPay()150
Employee e = bo; e.describe()Bo earns 150
Employee.java
Manager.java
EmployeeRunner.java
public class Manager extends Employee {
    private int bonus;

    public Manager(String name, int basePay, int bonus) {
        super(name, basePay);
        this.bonus = bonus;
    }

    public int getPay() {
        return super.getPay() + bonus;
    }
}
Run Test Submit
Test cases7 / 7 passing
manager adds the bonus
inherited describe() uses the override
a Manager IS an Employee

Track your progress

CSA Compass will automatically track your proficiency in different topics

Topic Accuracy
Variables, Data Types & Operators3 answered
28%
Weak
Strings11 answered
62%
Needs Work
Boolean Logic & Conditionals4 answered
85%
Strong
Loops & Iteration8 answered
45%
Weak
Methods & Built-in Classes3 answered
91%
Strong

Know what to work on

We will provide material tailored to what you need to work on

Things to Work On
Your weakest topics first — with exactly what each one covers and where to review it.
Variables, Data Types & Operators28% · Weak
Primitive valuesAssignment operatorsCastingInteger divisionOrder of operations
Strings62% · Needs Work
String methodscharAt() and substring()String comparisonString immutability
Loops & Iteration45% · Weak
while loopsfor loopsNested loopsGrid printing

No paywall…Ever

Never get stuck alone

Join the CSA Compass Discord — study with other AP CSA students, get unstuck in minutes, share your projects, and keep each other on track all the way to exam day.

Join the Discord

Questions you may have

Yes — completely free. No paywall, no credit card, no premium tier. Every lesson, every practice question, and the AI tutor are free, forever.

Nope. CSA Compass starts at Phase 0 assuming zero programming experience and builds all the way up to the full AP CSA exam — one small step at a time.

The Compass Tutor is built to teach, not to hand over answers. The biggest difference is context: the tutor already knows exactly what lesson and question you're working on — so it doesn't just give a generic explanation, it guides you toward the specific concept you're missing with hints and questions. With ChatGPT, you'd have to explain the whole problem yourself first.

Aman Henok

Aman Henok. Scored a 5 on the AP exam and built CSA Compass to be the resource he wished existed while studying for it.

We store only what's needed to save your progress — and your name and email if you choose to sign in. We never sell your data. Read the full details in our Privacy Policy.