Let's Self-Study Comp Sci for 2011-2012!

<p>I said I would post a little list of things I saw a lot on AP tests/practice tests. Sorry it’s taken awhile, if any of you are still here.</p>

<ul>
<li><p>Know methods of the String class. The ones that pop up the most are String.indexOf(int ch), etc (overloaded method) and String.substring(int) and (int,int). toUpperCase(), toLowerCase(), etc.</p></li>
<li><p>Know how to convert between bases (Usually hexadecimal > decimal or binary > decimal)</p></li>
<li><p>Key differences between abstract classes and interfaces. Can X have a constructor, can Y’s methods have bodies, etc etc.</p></li>
<li><p>GridWorld - I don’t really know what to say here if you aren’t taking a class. Maybe there are some practice GridWorld problems online that you can use? You need to know GridWorld in and out if you want those 5 questions correct. If you aren’t able to get a lot of GridWorld time in, then study the classes as much as you can. GridWorld is a huge part of the exam, so don’t skimp on it.</p></li>
<li><p>Scope of variables. Simple data types (int, char, long) are passed by VALUE. Objects (also arrays) are passed as REFERENCES. They like to put in questions involving the scope of arrays because most people think that arrays are passed by value.</p></li>
<li><p>Know how to manually iterate through single and double for loops.</p></li>
<li><p>Know how to recognize “tricky” recursive functions, such as a method that returns (a * b) while not actually using multiplication. (These functions are usually presented with the method identifier ‘mystery’)</p></li>
<li><p>Sorts and searches: know the implementation of selection sort, insertion sort.
Know conceptualized versions of mergesort + quicksort (know how they work, but typically you don’t need to recognize it in code). Quicksort is the FASTEST sort for a list size greater than 7. Under that, the “bad” sorts are better.</p></li>
<li><p>String.length(); ArrayList.size(); RandomArray.length;</p></li>
<li><p>Stack overflow is basically Java reaching the maximum memory it has been allotted. Therefore, methods that don’t have a stopping point cause stack overflow; know how to recognize when this happens.</p></li>
<li><p>Another thing they like to trick you with - ArrayList. If you are iterating through a list at index i, and i meets the criteria for deletion and is subsequently deleted, then you are REALLY at the index of the next object/data type etc. Kind of confusing at first, but basically just remember: when shifting/deleting data, think carefully about your indices. When iterating through an ArrayList, ONLY increase the index if something wasn’t deleted - otherwise, you will effectively pass over a value.</p></li>
<li><p>Know how compareTo works (interface Comparable)</p></li>
<li><p>Know type casting inside and out.</p></li>
<li><p>Know the (5?) typical exceptions and when they are thrown.</p></li>
<li><p>Note: When a question asks something along the lines of “The program requirements did not specify… it is unknown what to do with X…” the answer is ALWAYS “ask the program requester for clarification.” You do not take programs in your own directions - you always ask.</p></li>
<li><p>Vocabulary (long winded, but necessary)
Software development - writing programs
logic error - your program compiled and ran perfectly, but does not do its functionality correctly. i.e., a program designed to subtract a from b, which the user inputs, actually prints a plus b
exception - runtime error, occurs… during the run time :smiley:
syntactical error - System.out.prinltn, etc
stub method - dummy method; for test purposes.
encapsulation, polymorphism, inheritance
driver class - class which contains main class
test data - data that’s used to… test your program. need to have a good variety, for instance if it accepts integers then you need to try some negative numbers, 0, positive numbers, etc etc.
object oriented programming - use of objects which interact with eachother
algorithm - step by step solution to a problem
bottom-up development - independent classes come first, then main classes
top-down development - main classes first, then independent
procedural abstraction - fancy word for “hiding your methods,” you usually hide helper methods (private keyword)</p></li>
<li><p>public and private, how they function. protected isn’t tested on the AP exam, but nice to know.</p></li>
<li><p>modulus operator (a % b) - remainder division. 5%4, 4 goes into 5 once with a remainder of 1, therefore 5%4 == 1</p></li>
<li><p>the one thing NEVER compromised is RELIABILITY
the others (speed, memory etc) can be sacrificed to promote another</p></li>
<li><p>unboxing/boxing - primitives into their wrapper classes
(wrapper class for int is Integer, double Double etc.)</p></li>
</ul>

<p>I’ll add more later if you guys want; that’s all I can think of now. Good luck!</p>

<p>My only time for this will be on the weekends. School has officially taken back over my life.</p>

<p>I can’t even remember which lecture I’m on, so sad :[ I’d love some help with “find range” still.</p>

<p>I’m studying AP Computer Science this year too. I’ve finished the Programming Methodology lectures. After you guys finish those, I recommend moving into Programming Abstractions and Programming Paradigms, because the main language of those 2 is C++, which is extremely similar to Java. Those classes also move further in depth into memory and advanced syntactical features, so it can only help you in the long run. I recommend CS 107 over CS 106B (I don’t really like the 106 B instructor; she talks in a very annoying manner).
But over all, Stanford Course Lectures are great. I’ve also read the Barron’s book, and it was pretty similar to the Programming Methodology, so I’m pretty sure the AP test will go over pretty well.</p>

<p>Hey guys! I am taking this class too but my teacher moves REALLY slow, so I am thinking of just reading my two textbooks (yes, they gave me two) and then getting the Barron’s book.</p>

<p>I come from a solid Python background too, so Java code looks all ugly to me.</p>

<p>I’m self studying AP Comp Sci A :)</p>

<p>I’m a computer science newbie, but I’m a pretty techy guy, so I think I’ll do well :)</p>

<p>Just found this (sorry if it’s been posted!).</p>

<p><a href=“http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/[/url]”>http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/&lt;/a&gt;&lt;/p&gt;

<p>It’s been mentioned, but it teaches Python, not Java.</p>

<p>bump. howfar along are you guys?</p>

<p>pretty stagnant, at the same spot but I’ve reviewed my Barron’s book from time to time. Luckily, I’m founding a math club at my school during the mandatory sports slot, and when we aren’t peer tutoring or studying for math competitions, I’ll be studying this! How about you?</p>

<p>I’m in! I’m self-studying with no programming background, but I’ve got a computer background. I’m using Ubuntu w/ Eclipse</p>

<p>Is comp sci considered a lab science? Because my dumb school won’t let me take lab sciences online and I really want to take this online.</p>

<p>I’m taking AP Comp Sci A at my school (mainly for the credit) - I’m well-versed in programming already, so it’s pretty easy. I bought Barron’s anyway just in case.</p>

<p>I have a bunch of labs that my teacher has us do during class, so if anyone wants them, I put them in my Dropbox here: <a href=“http://dl.dropbox.com/u/10214508/ACD12.zip[/url]”>http://dl.dropbox.com/u/10214508/ACD12.zip&lt;/a&gt;&lt;/p&gt;

<p>I can provide my solutions to the labs if anyone wants them as well.</p>

<p>If anyone needs help, I can do that too, just add me on Skype (wchill1337) saying that you’re from CC and I’ll help. (I accept donations too! :D)</p>

<p>so you guys recommend barron’s? are the newest editions necessary? if not, what year(s) do you recommend?</p>

<p>Barron’s is a very easy to understand review book, one thing everyone should familiarize with themselves is the GridWorld Case Study that Barrons goes through (and you can also find additional information on the collegeboard website). The newest versions will be best, I would think, because those would include information about the most recent case study which you’ll have around 5-6 multiple questions on and a whole free response question.</p>

<p>Anyone else watching the Stanford lectures? Which one are you on?</p>

<p>Hello all, WOW this thread has been going on for a while :). OK IS IT too late to begin self studying for ap comp sci A ap test?? Please help!! I really want to self study this. I consider myself a techy. Obviously that is not enough but i feel that i can really work hard to try and do my best on this. You all seem to have been posting on this for a long while so please give me advice and/or your opinion! Thank you so much</p>

<p>just a little bump</p>

<p>I guess what i meant to say in short: Is it too start studying for the test? I am assuming probably not right? How and where can I get started? I have already started searching in google for websites and the best textbook (if necessary) to get started. I appreciate all responses.
Thanks!
-Forestmonkey</p>

<p>10 character bump</p>

<p>ah well i will have to wait for tommorrow to get a reply lol. :/</p>