AP/CS A Resources

This page was set up for students and teachers who attended our AP/CS Review Day on April 29th, 2017, although the resources listed here would be useful for anyone preparing for the AP/CS A exam.

Below is a list of resources that we recommend students focus on in preparing for the exam.

  • Using submissions from students and teachers, we have put together a 40-queston sample multiple-choice practice exam that has a similar distribution of questions to the actual exam. The exam can be given as a timed exam through our Practice-It tool. Information can be found on this page.
  • You should be familiar with the Java Quick Reference. We would call this a "cheat sheet" for the exam because it is part of the exam booklet and will be available to you throughout the test. It also serves as a list of Java classes and methods that you should be familiar with.
  • Be familiar with the course topics as listed in the course description (the document that is often referred to as the "acorn booklet" because of the acorn on the cover). Below are a list of specific parts of the booklet that are worth reviewing with the corresponding page numbers (the page numbers are for the pdf itself, not the booklet page numbers). It would probably be best to download the 83-page document once using this link, although the links below will open the document to the particular section mentioned:
    • It is a good idea to review the 3-page Topic Outline that begins on page 12 to make sure that you are familiar with all of the required topics. You might need to refer to the detailed commentary that begins on page 15 for an explanation of anything that is unfamiliar.
    • You should realize that you can use any Java constructs you want. For example, the Java quick reference mentions Math.random, but if you are familiar with the Random class, you can use that to generate random numbers. Keep in mind that there is a specific Java subset for the exam that mentions exactly which constructs they might include on the exam. It is useful to review the language features listed starting on page 66. Remember that you are required to know the topics in the left-hand column and you are guaranteed not to be tested on the topics in the right-hand column.
    • You are expected to be familiar with sequential search, binary search, selection sort, insertion sort, and merge sort. These standard algorithms are described starting on page 72.
  • There is never a guarantee about what kind of questions will be on the free response part of the test, but we can make educated guesses based on recent history. The exam used to always include one question for the GridWorld case study, but GridWorld was replaced with three suggested labs. Students aren't required to be familiar with the specific contents of the labs, but the development committee seems to be drawing on the topics covered in these labs in choosing free response questions. That suggests some specific studying students should do, particularly if they did not study the labs in their AP/CS course. Below are suggestions based on each lab.
    • The Magpie Chatbot Lab emphasizes string processing and static methods. Recent exams have included a lot of string processing tasks, so it is important to be familiar with that. You could look at the student guide for the lab, but we recommend that you instead work through a string processing lesson that we have put together.
    • The Picture lab gives students practice with two-dimensional arrays and working with objects (e.g., a two-dimensional grid of Pixel objects). Each of the last six exams have included a question that involves manipulating a two-dimensional array. The student guide has a very useful summary of basic tasks for 2D arrays that starts on page 9.
    • The Elevens lab explores object-oriented design issues. You could look over the student guide, but it is 42 pages long. Probably a more useful approach would be to review topics such as writing classes (fields, constructors, methods), working with interfaces, and working with abstract classes and inheritance.
  • Our free Practice-It! website provides a huge selection of problems students can work on. Use the search feature to find, for example, "ArrayList" problems.
  • CodeHS has a free AP/CS review that would be worth doing if you have the time.
  • College Board makes available all of the old free response questions along with sample responses.
  • We are beginning to put together online lessons for AP/CS topics that include videos, structured lab problems, slides, and practice problems. As mentioned above, we have a string processing lesson. We have also set up a recursive tracing lesson that focuses on the kind of recursion questions students can expect to see on the multiple choice part of the exam (the two most recent released exams had 3 questions each on recursive tracing).

As they used to say on radio and television, "And now a word from our sponsors."

The AP/CS A course is similar to UW's CSE142 course. If you get a 4 or 5 on the exam, you get credit for CSE142. That means you can start directly in our CSE143 class with that score. Some students choose to take our accelerated CSE143X class which is offered in the fall. It is a fast-paced course that does the entire sequence in two quarters and is intended for students with significant prior programming experience

UW has a great undergraduate computer science degree program and an active K-12 outreach program called DawgBytes. Enrollments in our CSE142 and CSE143 introductory courses are going up steadily, as you can see in this chart and this video. We've been able to handle the huge increase because of a small army of talented undergraduate TAs who love helping us teach students how to program in Java. Some of our instructors even make cookies for our 1000+ student classes.


Stuart Reges