It’s getting to be that time of the year again, and you’re studying for the AP Computer Science A exam — which tests core computer science skills and programming in Java. You might also be studying for the newer AP CS Principles exam that is considerably less challenging from a CS perspective, but many of the same tips still apply across both exams.

Depending on whether or not you are enrolled in a class or entirely self-studying, the answer varies slightly, however, as someone who entirely self-studied for the exam in their freshman year of HS, I would recommend::

  1. Well ahead of the exam, review the absolute fundamentals of Java/CS and practice them until you are 100% comfortable with them. I would recommend this course https://exlskills.com/learn-en/c... to get started and practice for free
  2. Subsequently, you’ll want to gain a solid understanding of the AP curriculum. This may be confusing at first, but I suggest that you use some free online resources like this course (https://exlskills.com/learn-en/c...) and continuously practice until you are able to code basic constructs, like classes, for loops, and strings/arrays with ease. There’s a lot of practice on EXLskills and generally available online, and the more comfortable you are answering those questions quickly and correctly, the more likely you are to get the sweet 5/5! This builds confidence in the primary substance of the exam.
  3. After you are comfortable with the core curriculum, it’s time to practice real coding. Look around online for real-world Java problems, algorithms questions, and previous years’ FRQs on the College Board website. This is the final step to really ensure that you’re able to get a 5 and ace the written code section of the exam. Many people without previous programming experience find this to be the most challenging part of the exam, so the more fluency you gain coding real problems, the more confident and capable you will be for the exam.
  4. Budget your time wisely and make sure to study in stages. Don’t just wait until the week before the exam and read the textbook. You will be tired, frustrated, and most importantly, not confident in your skills if you do that. There’s no way (unless you’re already a proficient programmer) to just study for the exam in a week.
  5. Focus on solving practice problems in realistic timeframes. The EXLskills exams will do this automatically for you by giving you a timer, but if you’re doing problems on paper from a textbook, make sure to setup a timer!
  6. Build a Java project (optionally with a group) before the exam to just make sure that you are comfortable writing code and thinking computationally. This will buy you time on the exam to double-check other problems that you may not have expected.
  7. While most of your practice should be online, make sure to practice coding on paper. It will feel very foreign if you’ve only coded in an IDE or online, so get comfortable with that before the exam.
  8. For algorithms and recursive problems, if you find them annoying/complicated, try out this code visualizer: Visualize Java code execution to learn Java online that will show you *exactly* what the program is doing to help you understand the logic and work through problems.

Good luck to everyone studying the exam, and remember that the magic 5/5 is totally attainable, especially if you start well ahead of time!