AP Computer Science tips?

<p>For those who have taken AP Computer Science, do you have any particular tips for preparing for this exam? How difficult was the exam for you? What textbook/prep book did you use, and how useful was it to you? Did you study more by doing practice multiple choice questions, or by practicing coding?</p>

<p>I know the exam's a while away, but I've already learned the material (self-study) and done some small programming assignments, so I'd like to know how I should study throughout the year now.</p>

<p>Disclaimer - I'm currently taking the class on Florida Virtual School. However, the tests are all AP-style, and I'm 75% done with the entire class (I've finished OOP and am now working through algorithms).</p>

<p>The only way to get good at writing Java is, well, to practice writing Java. I went into this class with no programming experience, and now I've fallen in loving with coding. You need to practice. Intentionally write errors into the program to see how the compiler responds. Set some sort of project for yourself and then see if you can replicate it. When I first learned while loops, one of the assignments was to create a very simple "guess the number" game (the computer is thinking of a number, and you have to guess it with computer hints). I expanded the game significantly out of sheer interest and submitted that for the assignment, which really impressed my teacher and really helped my programming.</p>

<p>For GridWorld, write your own Actors. Practice a lot with extending the Actor, Bug, and Critter classes. Make your new Actors do insane things. For instance, the official CollegeBoard guide has you make things like ZBugs, CircleBugs, and Jumpers. Again, set yourself a goal and try to make that goal play out in your code. This will prepare you immensely for the FRQs.</p>

<p>For the multiple choice, your programming will help a LOT, but you have to be very, very good at going through a code excerpt and predicting how it will behave. You'll often have to analyze results of trivial nested loops, obviously with no compiler. Use your pencil, and be smart.</p>

<p>Also, know and understand what you're working with. I've seen quite a few practice problems where they'll give you a few methods with hidden definitions, a main method, and ask you where the error in the main method occurs. Sure, you can write and track a nested loop that uses two-dimensional arrays, but if you don't know the difference between a class method and an instance method, you're going to have issues.</p>

<p>Summary - practice and understand.</p>

<p>Ditto what Keasbey says. </p>

<p>Last year I took the online class from HSCompSci</a> Online Computer Science for High School Students. (The highest level computer class at my lame high school is PowerPoint) If it was the only class I was studying for, then yeah, I could probably self study. However the teachers seemed to help me focus on what I need to pass the test. I took three AP exams last year (BC Calc, US History, and AP Computer science)</p>

<p>I would say that computer science was the most fun for me. I'm now enrolled in the iPhone application course they have. I'm hoping in addition to getting high school and college credit, that I can make a farting app and earn $3000 a day!. (or at least gas money each week)</p>

<p>Keasbey Nights gave some good advice. I'm assuming that you're self-studying it. I learned the majority of the material independently prior to taking the class and later the exam. As far as textbooks go, I used Lawrenceville</a> Press - A Guide to Programming in Java and [url=<a href="http://www.horstmann.com/bigjava.html%5DBig"&gt;http://www.horstmann.com/bigjava.html]Big&lt;/a> Java / Java Concepts<a href="java%20concepts">/url</a>. I started out just using the first book when I was studying it over the summer, but in school I used the second book more often. Both books start with the very basics and cover the whole curriculum. The first book is more concise than the second and it has better programming exercises. The second book goes into topics beyond the AP curriculum.</p>

<p>When learning the material, you definitely want to do programming exercises. Don't just read the textbook. There aren't too many questions on the exam like "Polymorphism is...". They're usually like "According to the code above, if the value of x is 3, then what value is returned?". So tracing through code and knowing when there are mistakes in the code is crucial. And this is best learned by coding.</p>

<p>Spend a lot of time on gridworld. Observe how the program works and what happens when certain modifications are made. I recommend downloading College Board's guide that includes programming exercises to modify the program. Don't just read about it in Barron's.</p>

<p>I used Barron's to prepare for the exam and I believe that it is the best prep book. It is slightly more difficult than the actual exam, but it doesn't include too much excess material. I didn't actually read it, but mostly did the practice questions. I feel like computer science is like math in that you don't usually sit down and read a math book like you read a history book. You reference certain topics from the book and look at examples. I also recommend looking at free-responses from previous years. You can get a feel for what CB is looking for in free-responses and what you get points for.</p>

<p>Don't wait until 2 weeks before the exam to start studying. If you've learned most of the actual material, then spend a lot of time doing additional programming exercises and learning about gridworld. Practice is key.</p>