5 Steps to a 5 AP Computer Science A 2017 (2016)

STEP 3

Develop Strategies for Success

CHAPTER 4    Strategies to Help You Do Your Best on the Exam

CHAPTER 4

Strategies to Help You Do Your Best on the Exam

IN THIS CHAPTER

Summary: This chapter supplies you with strategies for taking the multiple-choice and the free-response sections of the AP Computer Science A Exam. The strategies will help you get the best score you are capable of.

Key Ideas

   Many questions require you to read and process code. Practice by hand-tracing hundreds of pieces of code.

   When you don’t know an answer, eliminate choices you know are incorrect and guess. There is no penalty for guessing.

   You need to understand how points are awarded on the free-response section and when deductions are taken. Also learn what errors are not considered important enough to result in a deduction.

   You should make an attempt to write some kind of response to every free-response question, even when you feel you don’t understand the question or know the answer. You may earn a point or two even if you don’t answer the whole question or get it all right.

   On the multiple-choice section, you must clearly understand the difference between the System.out.print() and System.out.println() statements and be able to read code that uses each of them. However, on the free-response questions, you are never allowed to use either of these; they are considered undesirable side effects.

Strategies for the Multiple-Choice Section

The multiple-choice section of the exam determines how well you can read someone else’s code. There are many problems involving the fundamentals of programming such as if and if-else statements, looping structures, complex data structures, and boolean logic. Some of the questions have to do with class hierarchy, inheritance, abstract classes, and interfaces.

Hand-Tracing Code

Hand-tracing code is the act of pretending you are the computer in order to predict the output of some code or the value of a variable. A large number of the questions on the multiple-choice portion require you to read and process code. You should hand-trace hundreds of sample pieces of code to prepare for the exam.

Don’t Do Too Much in Your Head!

It’s very easy to make mental mistakes when hand-tracing code. Write out the current values of all the variables in the white space that is provided on the exam.

When You Don’t Know, Guess

There is no penalty for guessing on the multiple-choice questions. Make sure you eliminate the choices that don’t make sense before guessing. If you are running out of time, quickly make guesses for the questions you weren’t able to get to.

Read All of the Options Before Selecting Your Answer

Before you fill in the bubble, be sure to look at every one of the options. It’s possible that you may have misunderstood the question. Looking at each of the choices could help point you in the right direction. However, some people disagree and say it’s a waste of time to read all answer choices. So, if you prefer, only take this advice when you feel it will help.

Input from the User

You will never have to write code that asks for input from the user. Instead, the question will make a generic statement in the form of a comment that shows that they are requesting input from the user as in the example below.

Generic Input from the User

The AP Computer Science Exam will use a generic reference to show input from the user. When you see this, just assume that the variable receives an appropriate value from a nameless, faceless user.

Strategies for the Free-Response Section

The free-response section of the exam determines how well you can write your own code. Although there are an infinite number of possible types of questions that could be asked, it is common for you to be asked to:

  • Write an entire method body that processes data in a specific way.
  • Write an entire class given the specifications.
  • Write an interface or abstract class given the specifications.
  • Write an overloaded constructor for a class given the specifications.

How the Free-Response Questions Are Graded

The free-response question (FRQ) section is graded by an expert group of high school and college computer science teachers and professors. A real person who knows computer science will be reading your code to determine if you have solved the problem correctly. Your written code must be readable by another human being.

The Intent of the Question

Every year, the intent of each question is explained to the people who are grading the test as part of their training. This is normally a one-line statement that describes the purpose of the question. You should try to predict what the intent of the question is for each of the free-response questions when you are taking the exam. Thinking about the intent of the question will help you see the big picture and then zero in on writing the code that solves the problem. If you are oblivious to the intent of the question, then you are likely to go off course and solve a problem that is not the point of the question.

Scoring Guidelines

In order to help the exam graders be consistent when grading tens of thousands exams, a scoring rubric is used. This rubric dictates how many points are awarded for writing valid code that solves specific components of the problem. The problem is broken down into its most important components and each of these is assigned a point value. The total of all of these components from all sections (a, b, c, etc.) is 9 points.

Scoring for the Free-Response Questions

You start off with zero points for each free-response question. As the reader finds valid code that is part of the rubric, you earn points. Each component of the rubric is worth one point. Your goal is to earn 9 points, the maximum awarded for each question.

1-Point Penalty

After your response is graded against the rubric and your maximum score is calculated, the grader decides if points should be deducted from your total. If you break a major rule, then points are subtracted from your total. The College Board 1-point penalties include:

  • Array/collection access confusion

You must use the correct syntax when accessing elements in arrays and ArrayLists.

  • Extraneous code that causes side effects

This is a fancy way of saying your code doesn’t compile or you have written a System.out.print() or System.out.println() statement. Don’t ever print anything to the console!

  • Local variables used but none declared

Be sure to declare every variable before using it.

  • Destruction of persistent data

Anything that is passed to a method or constructor should be left alone. Do not change the argument that is passed. Reassign it to a different variable and only modify that one.

  • Void method or constructor that returns a value

Don’t ever have a return statement in a void method or constructor.

You Can’t Get a Negative Score

  • The graders won’t deduct points if you haven’t earned any points.
  • Penalty points can only be deducted in a part of the question that has earned credit so they won’t take away points from a different section.
  • A penalty can be assessed only once for a question, even if it occurs multiple times or in multiple parts of that question.

Non-Penalized Errors

I feel a little guilty telling you this and as a teacher it goes against my philosophy, but I’m going to tell you anyway. The readers of the exam are told to look the other way when seeing certain kinds of errors for which they would normally deduct points in their classroom. A full list is found in the Appendix, but here are a few of them:

  • Using = instead of = = and vice versa
  • Confusing length and size when using an array, ArrayList, or String
  • Using a keyword as a variable name
  • Confusing [] with () or even < >

Now listen up! I’m not telling you to be careless when you write your code or to make those mistakes on purpose. I’m just telling you that, on the AP Computer Science A exam, the readers will ignore minor syntax mistakes like these.

What Is Valid Code?

Any code that works and satisfies the conditions of the problem will be given credit as valid code. Please remember the graders are humans; so don’t go writing crazy, Rube-Goldberg-style code to solve a really easy problem. When in doubt, go at the problem in the most straightforward, logical way and stick to the AP computer science Java subset.

Fun Fact : Rube Goldberg was a popular cartoonist who depicted gadgets that performed simple tasks in indirect, convoluted ways. He is the inspiration behind the many Rube Goldberg Machine Contests that are held worldwide .

Brute Force Versus Efficiency and Elegance

There are many ways to solve problems in our world. As a software developer, your goal is to find the most elegant way to solve any problem. Sometimes that comes easy and other times, not so much.

On the AP Computer Science A exam, elegance and efficiency are not considered (unless the problem specifically asks for it). When you are asked to write code to solve a problem, try to go at the problem in the most reasonable way first. If you can’t think of an efficient way to solve the problem, then use brute force . In other words, if the solution doesn’t come to you, crank out the code in a way that works even if it is a really slow way to solve the problem.

Answer the Question

Above all else, answer the question. Or at least, make an attempt at it. Don’t be afraid to write something down even if you don’t have a full solution. Remember that the rubric for every question has components that are pieces of the solution. The one thing that you put down just may be a component that will get you a point or two.

Comments Are Not Graded

Don’t spend time writing comments for your Java code. The readers will not read anything that is part of a Java comment.

Cross Out, Don’t Erase

If you think of a new solution, write it out first and then cross out the old one. Don’t waste time by erasing the old solution. The graders are trained to ignore anything that is crossed out.

Output to the Console

On the AP Computer Science A exam, the use of output statements is a little strange. On the multiple-choice section, you must clearly understand the difference between the System.out.print() and System.out.println() statements and be able to read code that uses each of them.

However, on the free-response questions, you are never allowed to write a System.out.print() or System.out.println() instruction! You will lose points if the reader reads any kind of output statement in your response to a free-response question.

Never Write Output to the Console!

Don’t ever write a System.out.print() or System.out.println() statement on the free-response questions. You will automatically lose points for doing so because it is considered an undesirable side effect!







All materials on the site are licensed Creative Commons Attribution-Sharealike 3.0 Unported CC BY-SA 3.0 & GNU Free Documentation License (GFDL)

If you are the copyright holder of any material contained on our site and intend to remove it, please contact our site administrator for approval.

© 2016-2024 All site design rights belong to S.Y.A.