AP Computer Science Exam Information
This year's exam will be given on Tuesday
May 2, 2017 at
7:30 am most likely in Room 425 (Mr. Kersikoski).
Mr. Minich will be in school early with donuts in Room 202 at 7:10 a.m. on the day of the test if you would like to hang out and calm your nerves with your fellow test-takers.
Java students will be taking the Computer Science A Exam ( www.collegeboard.com/student/testing/ap/sub_compscia.html
).
Registration: See your guidance counselor to register for the exam. The cost is approximately $96 per test which should be paid by a check made out to
"Wyomissing Area School District." Please pay by mid-March. The CEEB code for the AP exam is 395-410. Make sure that you have already filled in the Scantron registration section of the exam in the Guidance Office before the day of the exam. If you would like financial assistance, see a guidance counselor or go through Naviance to make a request. If you have an accomodation in school that allows you to get extra time for tests, please see your counselor a few weeks before the exam to apply for an official College Board-approved accomodation that gives you extra time for the exam.
Items to bring to the Exam:
- Bring a few sharpened #2 pencils
with good erasers. There may not be a pencil sharpener in the exam room.
- Bring a blue or black pen. It is required according to the instruction
form.
- Wear a watch since you may not be able to
see a
clock in the exam room.
- Bring a jacket and dress in layers in case it is unseasonably warm or cold
in the exam room.
- Know Wyomissing's CEEB code which is 395-410
- A photo ID
- Tissues especially if you have seasonal allergies.
- your social security number if you want it to appear on your official AP score transcript.
- a good bladder since you will only be allowed to go to the restroom if it is an emergency and you ask nicely
Items that you should NOT bring to the Exam:
- backpack. Backpacks are not even permitted in the exam room.
- phone. If your cellphone makes a sound or vibrates, the proctor MUST submit an incident report to College Board and your exam score will be cancelled. You could also jeopardize other students' scores when College Board reviews the proctor's incident report! DO NOT BRING YOUR PHONE!
- calculator
- iPods, mp3 players, cameras, etc.
- textbooks, dictionaries, QuickReference packet (one will be provided), AP exam workbook, or any other books or study materials
- scratch paper. The proctor will supply you with paper.
- bottled water or other food or beverages. Technically
water is not allowed for this 3 hr exam. Snacks may be provided by the proctor.
Instructions that the proctor will be reading to you at the exam and other info about what is allowed to be taken to the exam is found here & here.
The test is made up of 2 sections.
- Part I Multiple Choice - 1 hour 30 mins - The multiple-choice
section will contain 40 questions.
- Part II Free Response - 1 hour 30 mins - The free-response
section will contain 4 questions, each with 3 or 4 parts (a, b, c, and d).
One free-response question is considered the "design question" and will probably ask you to design a class, an abstract class, or an interface and write the class declaration (i.e. write out the class including its properties, constructors, & a few other methods.) See sample free response questions and solutions
from previous years on the College Board Web site.
Be familiar with the Quick Reference materials since you will be able to use it during both parts of the exam.
Review the AP Java Subset at www.collegeboard.com/student/testing/ap/compsci_a/java.html
to be sure that you are familiar with and have reviewed the Java specific
syntax and structures that will be covered on the exam.
I HIGHLY recommend that you study from one of the available AP exam workbooks. Each workbook is about $15 and can be ordered through a local bookstore or from Amazon.com.
I matched up the table of contents from the following workbooks with the units in our couse: Barron's 4th edition
Barron's 5th edition Litvin ?th edition
Read these pages of test-taking tips: A Letter to Students , Exam Tips & Learnerator Tips
Tips & Advice
- Know how to get around the Quick Reference packet and use its table of contents & index.
- Write down what time the test is over since the proctor doesn't remind you.
- Multiple Choice
- You should guess on all questions that you don't finish since there is no penalty for a wrong answer.
- There may be so many code tracing exercises that you have difficulty finishing the multiple choice section in time. Don't become consumed by one tracing exercise since all questions are weighted equally.
- About 30 out of 40 multiple-choice questions will probably
involve a fair amount of tracing code.
- There may be 2 or 3 questions on Boolean Algebra (e.g. DeMorgan's Law,
true/false logic).
- There could be a problem asking you to convert a binary, octal, or hexadecimal
number to a decimal number.
- Use the get method with ArrayLists and use square brackets only with arrays.
- Make sure that you are correctly using a method's parameters
supplied in the problem. Do not declare local variables when a parameter should be used.
- Be sure to call methods properly.
- Avoid being off-by-one with loops, arrays, ArrayLists,
etc. (0, 1, n, n-1, length - 1, size() - 1, etc.)
- Do not use constants from specific examples that may be given in the problem. That is, do not hardwire an algorithm with a value that is just used in the directions as an example.
- Make sure that you do use the exact variable and method
names as specified in the problem.
- There may not be a whole lot on the exam about the Integer or Double classes but you should still be able
to work with these classes. Remember that Integer's and Double's are immutable.
- There will be one or two double-nested loop exercises to analyze and trace
- Free Response
- You are always given the header for the method that you must write out (i.e. implement). Be sure to make use of any parameters that are listed in the method header. They never give you extra information.
- Identify what data type you must return from the method. If it is void then your method will probably have to modify the property of an object or modify the elements of an array or ArrayList. Never System.out.print from within a method unless you are specifically told to do so. I have never seen a Free Response question that expects you to use System.out.print.
- Most of the Free Response questions require you to deal with either an array or an ArrayList. Do not confuse these two similar data types. When using an array, you will make use of square brackets [ ]. When using an ArrayList, you will be using it's get, add, remove & size methods.
- The linear search algorithm and traditional for loops (not for each loops) will be necessary in several methods that you must write out. Make sure you can write a for loop as in
for (int i = 0; i < something.length; i++)
- At times you will need to declare one or more local variables within the body of a method. Do not declare them as private.
- One of the free-response questions
will be a "design problem" where you
have to design an interface, class, or an abstract class. You may have to write out a whole class on this question!
- Write your answers correctly. Only display output when you are specifically asked to print something out. You are rarely asked to display something with a System.out.println statement.
- You will not have to write a client program or the code public static void main(String[] args) anywhere on the exam.
- Be sure to return values from methods when specifically asked to do so and that you return the specified data type (i.e. if necessary cast a double to an int )
- Do not confuse arrays int nums[] = new int[10]; with ArrayLists as in ArrayList<Integer> nums = new ArrayList<Integer>();
- A free response question may deal with mathematical
proportions or ratios.
- The exam-graders are looking at your free-response answers to be "good first drafts" of code. You can miss a semicolon or two but make sure that the "important" syntax is correct and precise.
Some of the most common errors are:
- being off by one in loops
- failure to return a required value
- writing code that fails to satisfy the required post-conditions
- failure to initialize a variable (e.g. int num = 0; )
- dangling else
- failure to check for boundary cases like when a parameter could be zero or a really large number
- extraneous code which causes side-effect (e.g., including unnecessary System.out.print statements)
- use of an interface or class name instead of variable name
- writing aMethod(object) instead of using the dot notation correctly as in object.aMethod()
- illegally using private properties in a client program or a child class
- use class name in place of super in a constructor call statement
- use of wrong identifier
- forgetting the word new in a constructor call statement (i.e. instantiation)
- returning a value from a void method or a constructor
- modifying a constant (final)
- using equals method when comparing int and double values
- using == when comparing two objects
- assignment dyslexia x + 3 = y; instead of y = x + 3;
- super(method()) instead of super.method()
- formal parameter syntax problems with data types in call statements (e.g. passing an int where a String is expected)
- putting double quotes around "false" and "true" when used as boolean values
- putting double quotes around "null" when it should be null
- forgetting to declare local variables when necessary
- forgetting the parentheses when calling a default constructor
- confusing square brackets [] with parentheses () or angle brackets <> confusion
- using single equals = instead of double equals == and vice versa
- using length instead of size or vice versa when finding the length of arrays, Strings, and ArrayLists
- mistakenly writing private in front of local variable declaration statements
- missing { }
- missing ( ) on method call or around if/while conditions
- missing semicolons at the end of statements
- forgetting to typecase when necessary
- missing the word public or private when required