Preparing for the AP Computer Science A Exam | Juni Learning

Posted on August 21, 2019
Students taking the AP CS exam - Credit: https://thejournal.com/articles/2017/07/19/29000-female-students-took-ap-cs-exam-in-2017.aspx

Preparing for the AP Computer Science A Exam

For many students, myself included, their first exposure to Computer Science is through the AP Computer Science A course in high school. Advanced Placement (AP) courses are designed for high schoolers to learn subjects with the rigor, depth, and complexity of college classes. Taking AP classes can also boost a student's weighted GPA.

The AP Computer Science A curriculum emphasizes the fundamental concepts and problem solving skills that Computer Science requires, using the Java programming language. It introduces basics like variables, loops, conditionals, and methods, along with object-oriented programming, data structures, algorithms, and software design strategies. Java is a widely used programming language, useful and multifaceted because it can support abstraction, encapsulation, and object-orientation, all of which are important concepts for software engineering.

The official prerequisite for AP Computer Science A is first-year high school algebra, including function notation and other algebraic problem solving skills. Overall, the course recommends a solid foundation in mathematical reasoning. However, having worked with many students taking this course, we have found that some prior coding experience really helps students be successful in this course. At Juni, we recommend students who are new to programming start with our Python Level 1 and sometimes our Python Level 2 course before moving into Java.

The College Board's AP Computer Science A Exam

To receive college credit, students must register to take the College Board AP exam through their school, administered in May of each year. In 2017, the College Board introduced a second computer science AP course, AP Computer Science Principles. Compared to AP Computer Science A, this course "focuses on the broader aspects of computing, including not only programming but also topics like the global impact of computing, the internet and cybersecurity, and creativity" (College Board). At Juni, we only offer the AP Computer Science A course.

The AP Computer Science A exam is a three hour test. The first half includes 40 multiple choice questions and accounts for 50% of the exam score. The second half includes four free response questions focused on program design, implementation, and problem solving, and it makes up the remaining 50% of the exam score. All of the questions on the AP exam involving coding use Java as the primary programming language, and test booklets include the Java Quick Reference that includes all of the accessible methods from the Java library that the AP exam may reference.

Goals of the AP Computer Science curriculum include:

  • Design, implement, and analyze solutions to problems
  • Use and implement commonly used algorithms
  • Develop and select appropriate algorithms and data structures to solve new problems
  • Write solutions fluently in an object-oriented paradigm
  • Write, run, test, and debug solutions in the Java programming language, utilizing standard Java library classes and interfaces from the AP Java subset
  • Read and understand programs consisting of several classes and interacting objects
  • Read and understand a description of the design and development process leading to such a program
  • Understand the ethical and social implications of computer use

The exam score is College Board’s recommendation on whether universities should grant course credits to the student. Generally, an AP score of 3 and above is considered passing. The scoring breakdown is laid out as follows.

Score Recommendation
5 Extremely well qualified
4 Well qualified
3 Qualified
2 Possibly qualified
1 No recommendation

Moreover, the following table shows the course credit transfers based on AP exam scores at some of the top Computer Science universities.

University AP Computer Science A Exam Score Units Transferred Course(s) Fulfilled
Carnegie Mellon University 4 10 15-110, Principles of Computing
Carnegie Mellon University 5 12 15-112, Fundamentals of Programming
Stanford University 4 or 5 5 CS 101, 105, 106A, ENGR 70A
UC Berkeley 3, 4, or 5 5.3 sem/8 qtr
University of Illinois at Urbana-Champaign 4 or 5 3 hours Computer Science 101, Intro Computing
University of Illinois at Urbana-Champaign 3 3 hours CS 105, Intro to Computing for Non-Tech Majors
Cornell University 5 4 credits CS 1110, Introduction to Computing Using Python
University of Washington 4 or 5 4 CSE 142, Computer Programming I
University of Washington 3 4 CSE 112, Advanced Placement (AP) Computer Science A

Sample Questions

The following are some sample AP CS A exam questions provided by College Board:

Sample Question Sample Answer
Multiple Choice A car dealership needs a program to store information about the cars for sale. For each car, they want to keep track of the following information: number of doors (2 or 4), whether the car has air-conditioning, and its average number of miles per gallon. Which of the following is the best object-oriented program design?
  1. Use one class, Car, with three instance variables: int numDoors, boolean hasAir, and MilesPerGallon.
  2. Use four unrelated classes: Car, Doors, AirConditioning, and MilesPerGallon.
  3. Use a class Car with three subclasses: Doors, AirConditioning, and MilesPerGallon.
  4. Use a class Car, with a subclass Doors, with a subclass AirConditioning, with a subclass MilesPerGallon.
  5. Use three classes: Doors, AirConditioning, and MilesPerGallon, each with a subclass Car.
(A)

Use one class, Car, with three instance variables: int numDoors, boolean hasAir, and MilesPerGallon.
Free Response A travel agency maintains a list of information about airline flights. Flight information includes a departure and an arrival time. You may assume that the two times occur on the same day.

These times are represented by objects of the Time class. The declaration for the Time class is shown below. It includes a method minutesUntil, which returns the difference (in minutes) between the current Time object and another Time object.

Students are provided with a scenario and part of the program to solve that scenario. They are then asked to complete a method in that program so that the program can calculate the duration of flights.
Link to Solution

Ways to Prepare

Most students who take the AP Computer Science A take the course in high school. However, it is possible to self-study for the exam successfully. Thankfully, many great online resources exist for students!

The College Board itself has numerous helpful materials. For example, they offer a compilation of various exam tips and tricks, in addition to a test bank of each year’s free response questions, multiple-choice, sample answers, and scoring guidelines to ensure transparency and fairness in grading.

Barron's, another well-known test prep company, sells a great book for this course and offers an online practice exam as well. Johns Hopkins Center for Talented Youth also offers this as an online course.

At Juni Learning, we offer AP Computer Science A as a course with a private instructor that covers all of the topics on the AP exam in depth. With our classes, students are paired one-on-one with an instructor who works on concepts and test prep, tailored to the student's specific needs. With us, some students fully self-study for the AP exam, while others are simply getting exposure to the material in preparation for the school year ahead.

Our AP Computer Science A course is broken down into the following modules:

  • Variable types, input / output, & arithmetic operators
  • Loops & conditionals
  • Classes & objects
  • Subclasses, abstract classes, & interfaces
  • Standard classes
  • Software design principles
  • Arrays & ArrayLists
  • Recursion
  • Basic algorithms
  • AP test prep

Advice From Former AP Computer Science Students

We asked Juni instructors who took AP Computer Science in high school on what they did to prepare for the AP exam and any advice that they would give current students. Here is some of their advice:

  • Practice! That includes practicing the multiple choice and free-response questions individually, but also taking practice exams, end-to-end, in a controlled environment within the allotted time. This helps you get a feel for how long you should spend on each section. Simply reading the textbook won't help you get the real experience you need for the exam.
  • Time management is critical - make sure that you move on from certain questions if you're getting stuck and come back to them later in the exam. Otherwise. you may get stuck for a long time on a harder question and run out of time on the easier ones.
  • Ask for help. If you're stuck on a problem, ask a friend in the course or one of your teachers (or a Juni Instructor) for help. Don't be afraid to get problems wrong, because programming is all about learning from your mistakes and continuing to improve.
  • Take a break once in a while. You've already gotten this far - at a certain point you'll need a break from practicing, as you'll have diminishing returns from trying to cram in new information. Make sure that you're getting enough sleep and take some time to go for a run or meditate. Some great meditation apps like Calm or Headspace can help you refocus on the task at hand.

Final Thoughts

There are many different resources and programs that can help students prepare for the AP Computer Science A exam. The best fit depends on the student's learning style and time constraints.

Overall, the AP Computer Science A course is a great opportunity to learn the fundamentals of computer science and demonstrate proficiency to colleges. Passing the AP exam is a great way to earn some college credit, but more importantly it helps develop a lifelong technical skill that helps one think in new ways.

At Juni Learning, we offer private online coding classes for kids, and many of our highly qualified instructors are pursuing a Computer Science major at UC Berkeley or other similar schools. To have your student assessed for placement into one of our courses, request a trial class with us.


Suman Tripathy holds a B.S. in Electrical Engineering and Computer Science from UC Berkeley. Next fall, she will be moving to New York to pursue her Master's in Data Science. She is currently a Senior Instructor at Juni Learning. You can often find her camped out at Philz Coffee reading books and listening to music!