*** OFFICIAL 2013 AP Computer Science A Thread***

<p>Does anyone know if they changed the test in anyway?</p>

<p>I heard that it places less emphasis on array lists? </p>

<p>Btw someone explain arraylists lol</p>

<p>arrayLists are like arrays but their sizes can be changed, and they have methods like add(), set(), and remove() which makes it easier to modify them.</p>

<p>ArrayLists are also sometimes superior to arrays in that they automatically resize as they are filled.</p>

<p>Inserting an element in an ArrayList will readjust all the other elements and make space for said inserted element; doing this in arrays would only “overwrite” the slot.</p>

<p>Upcasting its reference as List is an example of coercion, and is often done in practice, List<e> list = new ArrayList<e>.</e></e></p>

<p>And, ArrayLists are exclusively for objects, although primitives can be converted to their respective classes automatically via autoboxing.</p>

<p>This exam won’t be fun -_-</p>

<p>My school doesn’t offer the class so I’m taking it online. I don’t know about everyone else, but I feel like I have a much firmer grasp on how to program in Java than I do a grasp on how to actually pass this AP exam. That being said, does anyone have any tips on following search and/or sorting algorithms and recursion? That tends to be my weakest area on the practice exams.</p>

<p>how much exception handling is on the ap exam?</p>

<p>

I would make sure you know GridWorld, as that is specific to our exam, and while you can figure it out on the spot, it’s better to get comfortable with it beforehand.</p>

<p>Also, does anyone know if it’s okay to use other libraries for the FRQ? </p>

<p>i.e.</p>

<p>instead of ( Math.random() * 42 ) + 1</p>

<p>import java.util.Random;
/*… code and main method… */
new Random().nextInt( 43 );</p>

<p>@Quarking Well, I have the Barron’s AP Book(Self Study), and it recommends not to use external packages for exam purposes. I thought of using Scanner classes for I/O, but wouldn’t do it, as the book mentioned it explicitly.</p>

<p>Hey guys,
HS senior here. Thought I’d stop by.</p>

<p>I have 5 years of programming experience, easily aced the APCS exam with a 5 (and took a nice long 2 hour nap during the exam). Essentially knew everything on the exam before ever taking the class.</p>

<p>If you guys have any questions I’ll check back here daily.</p>

<p>I’ll also probably host an online review session (I essentially TA for my APCS teacher) the week before the exam if there’s enough interest. </p>

<p>Let me know.</p>

<p>Also, if you’re looking for Barron’s or the 2008 practice exam, they’re in my Dropbox (<a href=“http://db.tt/YD4RKoKT[/url]”>http://db.tt/YD4RKoKT&lt;/a&gt;). I’m working on tracking down 2009/2012 released exams.</p>

<p>@DaneBrick: absolutely none. They’ll check to see whether you know common types of errors (NullPointerException, ArrayIndexOutOfBoundsException, etc.) but there is absolutely no error handling (try/catch/finally statements).
Used to be on AB but that test doesn’t exist anymore.</p>

<p>@CSKid13: what do you mean by “following”?
I find the Wikipedia pages on the sorting algorithms helps a lot (they have animated diagrams of how the sorting algorithms work, explain how/why it works, and oftentimes provide pseudocode as well as best-case/worst-case/average values for # of operations, time, memory, etc.</p>

<p>As for recursion, just think of divide and conquer tactics. Or think of a binary search tree. Basically, recursion breaks down a huge problem into multiple instances of the same problem, just with smaller numbers (thus making it easier to compute).</p>

<p>Any other questions, I’m here all day.</p>

<p>@CSKid13 Read it(the algorithms) over and over again. If you browse the wikipedia page, there are GIFs which explain exactly how the algorithms work.
For Instance, Here’s the Bubble Sort Algorithm:

<a href=“http://upload.wikimedia.org/wikipedia/commons/c/c8/Bubble-sort-example-300px.gif[/IMG]”>http://upload.wikimedia.org/wikipedia/commons/c/c8/Bubble-sort-example-300px.gif

</a></p>

<p>As for Recursions, those pose a problem for me as well.</p>

<p>@anishbasu what confuses you about recursion specifically?</p>

<p>@chilldude What method do you recommend for Conquering the GridWorld Programs?</p>

<p>Ummm, calling a method from itself seems really confusing for me.Also, I just can’t find enough ways to implement recursion.</p>

<p>For working with GridWorld, I would say actually extending the base classes (Actor, Bug, Critter, etc.) and making them do stuff is probably the best way to understand GridWorld. (Especially since one of the FRQs will definitely be on something similar.)</p>

<p>My APCS teacher has some PowerPoints/worksheets he uses for it specifically, I can share those if you want.</p>

<p>As for recursion, the best practical examples I can give you are either merge/quicksort, binary search, and binary trees. Merge/quicksort you should have covered in your course or prep book, and the reason why recursion makes them faster has to do with the math behind it.</p>

<p>Say you have 8 elements. To do mergesort, you break it down into 4 and 4, then 2 2 2 2, and then recursively merge them back together. The number of steps this takes is O(n log n) - meaning that if we have 8 elements, it’ll take something on the order of 24 steps (times an undefined coefficient, which doesn’t really matter here).
Bubble sort is a quadratic sorting algorithm (you use 2 for loops, so 8*8 steps = 64).
You can see how this difference becomes more dramatic as you use bigger arrays. For the exam, this is the most practical example.</p>

<p>They tend to use weird examples for recursion on MC though. So I’d take a look at the factorial function implemented recursively.</p>

<p>As for calling a method from itself, it shouldn’t be too counter-intuitive. It’s pretty hard to explain admittedly, but I think of layers when I use recursion. Every layer down will have a smaller and smaller input until you hit the base case.</p>

<p>If I wanted to do a factorial method recursively, then what happens is (in this order)
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1</p>

<p>We hit the base case and start returning
2! = 2 * 1
3! = 3 * 2 * 1
4! = 4 * 3 * 2 * 1</p>

<p>Now, imagine that we do that the other way around. We work our way up from 1! and go to 4! Sound familiar? It’s a for loop.
So recursion is kind of like a for loop, but backwards (and in fact, it’s possible to do anything you can do recursively with loops instead).</p>

<p>So just think of recursion as a glorified loop, because that’s almost what it is.</p>

<p>@chilldude Really great advice. I’ll really appreciate any Study Materials, as this is a self endeavor, and I don’t really have any funds(as such) to study, and even if I had, there’s no one to teach me :(.</p>

<p>Thanks again!</p>

<p><a href=“Dropbox - Error - Simplify your life”>Dropbox - Error - Simplify your life;

<p>Link to all the materials used in my teacher’s APCS class during the school year.
There’s 17 exercises on GridWorld, exercises 43-59. You might want to take a look at the other topics as well. (Exercises 17-25 deal with graphics, which isn’t on the AP exam, but they also talk about return types, creating/extending classes, and implementing interfaces, so I would at least look through the PowerPoints for those if you don’t want to work with the graphics.)</p>

<p>Other than that, I would advise you to start crunching through FRQs. I haven’t been able to locate the released AP exams for 2004, 2009 or 2012 - just have the 2008 practice exam (check the Dropbox link I posted earlier in this thread). Use that and the exams in your prep book to prepare for the exam.</p>

<p>Thank You, really! I’m starting to think about SATs, as my Standardized Test(for 10th Grade) just got over. I’ve been a College Confidential lurker for a few days, but it’s people like you who give excellent advice to aspirants is what makes CC better than most Online communities.</p>

<p>PS:I didn’t know about the Big-O notation and I just looked it up, and I’m glad I did.</p>

<p>Honestly, there are a few good things about this site and a few bad things about this site. You really need to be careful in the college forums regarding admissions (such as the chance threads, admitted student stats, etc.)
But overall, yes, I’ve found the exam prep forums to be invaluable.</p>

<p>Also, Big-O isn’t tested on the AP exam, so don’t worry about it too much :stuck_out_tongue: but it is a very useful tool to see how long or how complex something is. Good for you!</p>

<p>Well, I was thinking about taking the Zonal Computing Olympiad(I’m an international student), as most of the top colleges don’t admit Int’ls without medals. I really need to try harder. The hardest part IMO was convincing my parents to keep faith in me for letting me study for the SATs instead of going the IIT Route which, like 99.99% of the students take.</p>

<p>I’ve been programming in Java for 3 - 4 Years, and my current project, is the implementation of a Jetty based billing server for an uncle, because I need the cash to study.</p>

<p>You’re touching upon those areas of computing knowledge that is absolutely essential for studying for BS in CS, but nobody bothered to teach me. Thanks again. I’m really grateful.</p>