Slashdot Mirror


First Java AP Computer Science Exam Complete

BlindSpy writes "Yesterday, Tuesday May 4th, high-school students all over the U.S. took the first-ever Advanced Placement Computer Science College Board exam based on Java. The exam is given as an opportunity for high-school students to earn college credit in programming. The test is based on whichever language colleges are looking for, which signifies a significant step for Java. In past years, the exam has been based on C++ (1 year) and Pascal (around 10 years)." If you took the exam, what were your impressions?

38 of 812 comments (clear)

  1. easy by will_urbanski · · Score: 5, Informative

    honestly, i didn't think it was that hard. If it was in C++ i would have spent much more time prepairing, but Java is so straight forward that I flew through the test without a lot of studying. Now, whether or not you have a decent teacher plays a lot into this. The questions weren't too hard or too complicated; even the more complicated ones had anwsers that could be eliminated after looking at it for a little while. I'm glad it was in Java-- C++ would have been a lot harder.

  2. All around.. by redhairedneo · · Score: 2, Informative

    Pretty good.

    I took AB, it covered all the topics pretty well, although I wish I had studied big-oh ALOT more, there were like 10 questions on it throughout the whole test.

    The difficulty level I thought was well within the grasp of any good student. The Part IIs I thought were particularly simple, I was expecting alot more, especially after what my review book was serving up...Yet the hardest thing was traversing some trees.

  3. One year? by Anonymous Coward · · Score: 5, Informative

    What's the story with C++ only being the test language for one year?

    I took the test five years ago and it was in C++. Did they switch back to Pascal or not give the test for a couple of years? Or (as seems more likely to me) is the Slashdot summary wrong?

  4. Re:Salute! by Mmmrky · · Score: 4, Informative

    It was C++ three or four years ago too. So no, not one year.

  5. Language lengths by Jadsky · · Score: 5, Informative

    The test was converted to C++ in 1999. This means that C++ was the language of the test for a full five years, not just the one mentioned in the posting.

  6. Re:Only 1 year? by Anonymous Coward · · Score: 1, Informative

    Not true in Utah at least, and I was under the impression that all the AP shite was a nationwide thing.
    I took an AP test on C++ in 1999. If I remember correctly our teacher said something about it being the first year C++ was used for the test, but that could be BS, not sure.

  7. Re:Only 1 year? by Anonymous Coward · · Score: 1, Informative

    By 1 year they mean that 1 year ago it was based on C++
    (I took it last year)

  8. Should we be able to talk? by agent+dero · · Score: 4, Informative

    I took it yesterday in the morning, as I think everybody did.

    Overall, I think it was relatively easy (not to toot my own horn or anything)

    Comparing to what i've seen of C++ and it's AP Exam, I _think_ the ease came mostly from the ease of Java itself, and the APPENDICES!

    Most of the good heartly case-study code was included, along with a 'cheat-sheet' with method headers for the ENTIRE case study.

    I'll get back to you in a month or two with my score, then we'll see how 'easy' it was

    --
    Error 407 - No creative sig found
  9. Re:Rules by Anonymous Coward · · Score: 1, Informative

    That post was moderated funny? I'm a different anonymous coward, but that person is definately NOT joking.

  10. Re:My impression of the exam by dAzED1 · · Score: 2, Informative
    why the hell is the parent getting modded "informative" when any idiot could see he was merely being "funny?"

    Good lord, people...

  11. Re:My impression of the exam by MagicDude · · Score: 2, Informative

    Memory? Has the format of the exam changed? I took the C++ exam when it was first offered in May 1999 when it had switched from Pascal, and the entire exam was 3 hours, pencil and paper. The first half was multiple choice questions, and the second half was coding questions, where you were given a task and had to write code by hand to execute it. Is it being done on computer these days? (Is the computer science exam being done on computer? That seems like such a stupid question, doesn't it?)

  12. Re:Rules by cheezycrust · · Score: 2, Informative

    He is not joking, you can read it on their site.

    --
    Teenagers these days don't have as much sex as they want each other to think they do.
  13. Re:Language shouldn't matter! by brsmith4 · · Score: 3, Informative

    The AP exams are not completely multiple choice. When I took it in '01, half the test was multiple choice, the other half was coding. We were supposed to use C++ to write functions that did matrix manipulations and sorts/searches using object-oriented concepts.

    Needless to say, at the time, I was completely inept when it came to programming and thoroughly failed the exam. A few years later and I'm fairly close to graduating with my CS degree. Those exams are shit in my opinion.

  14. Re:Rules by jdhutchins · · Score: 4, Informative

    Funny? He was being serious, people. They do say that, and FOR A REASON. Multiple choice questions are resued so that the College Board can compare how well people did year-to-year. The playing field should be level. Students who tried to cheat this way HAVE had legal action persued against them, and letters sent to the colleges where their scores were going to go saying "Sorry, no score for this kid, he cheated".

    You want the tests to be fair, and that's what the College Board wants. They make a LOT of money off of tests being fair.

  15. Re:My impression of the exam by Medieval_Gnome · · Score: 2, Informative

    No, it's still (jokes nonwithstanding) pencil and paper, with the same sections and time limits.

    --

    :wq

  16. Re:CLEP and Test Out by MagicDude · · Score: 2, Informative

    CLEP credits aren't always as useful as AP credits though. First of all, living on the east coast, I've never even heard of CLEP credits until I went to college. Also, in applying to medical school, many schools that accept AP credits for prerequsite classes like Physics and Calculus, won't accept CLEP credits. If you had CLEP credits, you would have had to take those courses again to apply to medical school.

  17. Re:Language shouldn't matter! by JimMcCusker · · Score: 3, Informative

    That doesn't sound too good for your school. This stuff was discussed in my second CS class: Data Structures and Algorithms. Kinda important stuff, actually. By Junior/Senior levels, we were doing stuff with computer vision, operating systems theory, AI, computability, etc. Graph Theory was part of the third class (Formal Systems and Anlaysis), which included relational theory (write your owm RDBMS!), DFA/NDFA's, and Context Free Grammars. Most of this stuff we had to code our own implementations of, so we got an understanding of the basics. Data Structures is first-year Freshman stuff.

  18. Language Doesn't Matter, but the Case Study Does by fredtheshingle · · Score: 2, Informative

    I took the test yesterday, at about 8 AM. Only two other APCS students took the exam from my school, so we were considered "special" and took it in a conference room. I took the AB version (the "harder" of the two available, A and AB).

    AB covers things like heaps, queues, stacks, and trees, along with more advanced sorting and searching methods.

    The point is, and should be... language does in fact NOT matter. Actually learning the language is very simple. Learning how to *use* the language to accomplish classic and very useful techniques (tree searching/sorting, recursion, etc.) is the real test of knowledge.

    Even though College Board switched from C++ to Java (and I prefer C++... well, C, actually) really makes no difference. They provide a supplemental booklet that describes briefly the standard features in Java (Maps, Lists, Strings, etc.), so you can really just focus on solving the PROBLEM.

    While we're not allowed to go into specifics, I am going to say, for the benefit of all who may take the exam in years to come, learn the ins and outs of the Marine Biology Case Study!

    I was having absolutely no problem with the exam until I hit the problem (with three sub-sections) based on the MBCS. In my APCS class, we hardly ever "played" with the case study. The result was that I spent 30 minutes reading the provided code to the case study in order to familiarize myself with its API so I could write the code necessary to complete the requirements for the problem.

    This hangup ultimately cost me 1/4 of my free response section (there were only 4 problems), because I simply ran out of time - and 30 minutes was more than enough time to complete the last problem, and I was more than capable of doing it (it was on binary trees).

    The bottom line... 1) the exam does a great job on testing how to solve problems; it does not specifically test your knowledge on Java, so the language switch shouldn't be much of an issue at all. 2) Know the case study! They publish publicly the material that is given as supplemental material on the exam.

    Also, I read in a thread that we had "all day" to take the exam compared to only three hours in previous years... this is false. The exam has two parts: a multiple choice section that takes 1:15, and the free response section that takes 1:45. A five minute break was allowed for between sections.

    Hope this helps! KNOW THE CASE STUDY!

    --Aaron

  19. not that it really matters by Samari711 · · Score: 2, Informative

    I took the AP exam when it was C++ and the only credit i ended up getting was a buisness programming class. The CS departments aren't going to give you much credit for the exam unless everyone's required to take an intro to programming freshman year or something like that. The stuff covered in the AP test is pretty much amounts to learn the language and get a broad overview of some important topics. once you get to school they cover everything in a lot more depth. it's definitely good experience but don't think that you're going to be getting out of any useful classes if you're a CS or Computer Engineering major.

    --

    I never said I was smart, I just said I was smarter than you

  20. AP FYIs(long) by Deslok · · Score: 2, Informative

    I've been teaching AP Comp Sci for the last few years so I though I'd toss out some info that seems to be lacking around here: First off, the entire aim of the test is to measure how well a student would do in an introductory college course in the subject(1 semester course for the A exam, 1 year for the AB exam). The validity of the scores are tested by giving the exams to college students at selected universities and comparing the score with their grades. Comparing Java scores with C++ scores with Pascal scores is not really an issue, in each case, its simply "Here is how qualified we think you are to be considered having passed 1 term of this subject 5 most qualified to 1 not qualified." Because college Computer Science departments have not been static for the last 10 years(duh!), neither has the AP exam in its effort to reflect that. In 1999, the exam switched to C++ to reflect that C++ was the most often used language for introductory courses - for the 90s it was Pascal, and back in the 80s the exam was in BASIC - this year it changed to Java to reflect the changes in college courses. The test is hand written, so there are no compile time issues(and no issues of unfairness to schools that don't have newish computers. As a teacher, it rather sucks that they only release multiple choice questions after 5 years. Every other subject has books out of 5 years of old exams. And despite a few minor tweaks, Calculus really hasn't changed in... oh... 100 years(note: introductory level). For Comp Sci, that means this year they finally released the first year of the C++ multiple choice questions. Great, that helps my students prepare loads for the exam in Java. Free response questions get released 48 hours after the exam. Btw, my students thought the exam was easy. I have one special ed kid who gets extended time on tests. He finished the free response(supposed to take 1 hour 45 minutes) in under an hour - and that sat laughing with me downstairs at the other kids who were forced to sit in the exam room for the entire duration, twiddling their thumbs. If you are looking to take the AP in the future, definitely take the AB, the A material doesn't have that much too it and really, a fair number of kids should be able to pass that exam just picking up a Barrons book and working on their own.

  21. Re:Language shouldn't matter! by pclminion · · Score: 4, Informative
    It's possible for a student to come out of a CompSci course and be unable to explain why a containment-based widget toolkit is better than a positional one, yet can talk about VM swapping algorithms and implementing the fastest hashtable probing all day. Which would you rather employ?

    The one who understands the difference between computer science and software engineering?

    Would you hire a physicist to design a bridge? It would be insane.

    Quit bitching about CS and go to the field you should be studying: engineering. Any kind of engineering. Good engineering practices are the same across the different types of engineering. But to expect computer science students to learn these practices is ludicrous. That isn't the point of CS, it shouldn't be the point, and I hope to God it never becomes the point.

  22. Re:Rules by Aneurysm9 · · Score: 4, Informative
    Copyright can't stop them, since it is a fact that the answer to question #115 is letter D, and you cannot copyright a fact.

    The problem with this reasoning is that these are "invented facts" as opposed to "discovered facts." It's a piddling difference, but "invented facts" are not covered by the 17 U.S.C. 102(b) bar. Check out CASTLE ROCK ENTERTAINMENT, INC. v. CAROL PUBLISHING GROUP, 150 F.3d 132 (2nd Cir. 1998) where a court found copyright infringement in a compilation of trivia about Seinfeld. The argument was made that it was nothing but a compilation of uncopyrightable facts about the series, but the court said that, because the facts were created by the seinfeld writers, they were protected.

    --
    There was Cowboy Neal at the wheel of a bus to never-ever land.
  23. Re:Testing times by magefile · · Score: 2, Informative

    I know you're being funny, but ... you code by hand. No computer. Which is a PITA, as knowing how to use references and resources is a major part of programming. But then any idiot with any programming knowledge could spend a few days getting ready, and use the Java API, I suppose.

    I took it last year; because of a disability, I'm allowed to use a computer, but I had to use WORD! They wouldn't even let me use notepad, for it's nicer indentation styles.

  24. java ap by ibeatyoutothisname · · Score: 2, Informative

    I took the test yesterday. All standardized tests are a joke. People who say pascal should still be used seem to be forgetting that:
    1) The test are based on whatever language the majority of colleges are teaching.
    2) Java is natively object oriented. Pascal is not. Object oriented concepts need to be tought along with algorithms, they are now almost as important.

  25. Legally, I'm not supposed to say anything, but... by Mirkon · · Score: 2, Informative

    I took the test last year in C++ and this year in Java (my school offered no other way for me to learn Java).

    The Java test was a lot harder than the C++; while last year's was largely about more general computer science concepts and basic, universal programming practices, this year's (at least the AB exam) was almost entirely on higher data structures like hash maps and binary trees.

    Of course, they didn't skimp on the recursion either.

    --
    Glog!
  26. Re:Testing times by cos(0) · · Score: 4, Informative

    No one that replied to you has mentioned it yet, so I will: the Computer Science AP test has two parts: A and AB. As you said in your post, you took the A part. The AB part, which is what I took yesterday, is more difficult and places strong emphasis on binary trees, linked lists, and stacks/queues.

  27. My impression of the exam by Anonymous Coward · · Score: 1, Informative

    (Please excuse my lack of details, it's not my idea of a nice day to have the College Board terminate my scores)

    I took this year's test and found it overall pretty good. I'm not a good programmer by my own standards, but am second best in the class so far this year. (The kid that did better is some ubergeek that totes in his Linux laptop everyday and puches out code like nothing) I found the test to be hard enough to weed out everyone that doesn't know their stuff, but not difficult enough to present a real challenge to someone that really knows the material.

    The thing that annoyed me most was that they coded the mystery methods in the most roundabout way possible in most cases. They overstressed some topics (recursion, linked structures) and didn't go anywhere near some others.

    IMO, Java was a good choice of a language to base the test on. It kept the overall topics (ADTs, recursion, efficiency) as the main focus without too many detials. They didn't test on quirky systax, and whenever I didn't remember an obscure syntax piece it was easily found in the appendix.

  28. That's Funny... by HopeOS · · Score: 4, Informative

    All the reasons you dislike C++ are the reasons that I'm a fan. I use many languages, but C++ in particular gives me more leverage overall.

    1. Operator overloading - mandatory for best use of templated functions and algorithms. If people make poor decisions with respect to what they overload, that's hardly a problem with the language. I would consider not being able to overload an operator a problem with the language.

    2. References are required for any function that returns a "left-hand value." If that phrase does not mean anything to you, then you are not actually discussing C++ references at all, merely glorified pointers. Since left-hand values cannot be NULL by definition, your misunderstanding with regard to their purpose seems likely.

    3. Memory mangement is identical to that of C. The addition of the new and delete operators is nothing remarkable - they just call malloc and free. They are also overrideable on a per-class basis if that is not good enough for you. If by "memory management" you mean "takes complete control of object lifetime" than no, C++ thankfully let's you do whatever you want with your objects.

    4. Templates are very powerful. They allow with a single declaration the ability to generate code optimized for a given problem. If you are complaining that the mechanism is too powerful, well, some of us like the extra capacity.

    5. As for multiple inheritence, I use it frequently. Some types of inheritence are unfeasible, some are unimplementable without substantial performance penalties, and most are simply doable. If you're having trouble, and your inheritance tree is sound, then file a bug report for your C++ compiler.

    Genuinely, most of your complaints misrepresent C++ as something it's not, namely a high level language. If C is one step from assembly, then C++ is maybe a step and a half. That's by design.

    If I want rapid prototyping, I'll use PHP or Python. I'm not sure what Java gets me other than a sandbox and some friendly exceptions when things go wrong. That's nice, but I don't write weak code, so all that padded insulation does me no good at all.

    -Hope

  29. Re:Rules by Omerna · · Score: 3, Informative

    Standardized testing is big business in America now, so let me clue you in.

    1) The test has to start in a 30 minute time frame so that the East Coast is still in the testing room when the West Coast goes in (no emailing/ IMing/ text messaging answers across timezones).

    2) Multiple choice answers are released like 5 to 7 years after the test was administered. Free Response questions are given to the teachers (tests are administered at your school) the day of the exam as they aren't reused.

    3) What can happen to people who don't play by their rules? Try getting into college without taking the SATs (same people). None of your APs will count. Maybe you'll be sued, I don't know, but I DO know that your school's right to administer ANY AP EVER can and has been revoked.

    So as much as you'd like to think "that's crap" it isn't-- at least not legally.

    --


    No sig for you.
  30. Re:Rules by Hawkxor · · Score: 2, Informative

    I took the test yesterday; my first this year but 10th overall. It is the first year that they've told you that you can't talk about the multiple choice questions. Funny: on the test they didn't say 'legal action may be taken against you', they said 'legal action may be taken against you for copyright infringement'. Its copyright infringement to talk about something?

    Incidentally, the test was really easy (I finished the free response in 45 minutes out of 95 - most of the programs could be done in 5 or 6 lines). And I'd never really done anything with Java, I just studied the Princeton Review book a couple nights before hand. I highly recommend that book.
    I did already know programming though: and to those who have been discussing this, the AP test does indeed place more emphasis on logic etc. rather than a specific language (Java) itself.

  31. Re:C++/Java by wan-fu · · Score: 2, Informative

    Obviously you have to learn the Java libraries but my point was that you don't have to learn two separate libraries since you'll be using the Java library in class anyway. I don't know many computer science classes that bother to teach the AP library and most opt to use either their own or ask the students to build their own vectors, hash tables, etc. Also, the Sun references are excellent, just look at http://java.sun.com/j2se/1.4.2/docs/api/java/util/ ArrayList.html get runs in constant time for arraylists.

  32. Re:Language shouldn't matter! by Anonymous Coward · · Score: 1, Informative

    Granted, I was taking comp sci while an electrical engineering student, but I hate to tell you that we all took many of the same courses.

    There was NOTHING. I repeat NOTHING in those courses I did not already know, moreover there was NOTHING whatsoever about the practical issues of coding.

    There were lots of crap things like "give me an example of programs which use recursion" and precious little on designing programs in a sane manner. I learned pretty well everything I know about that on my own, and spent the rest of my time laughing because my profs had some very obviously bad designs in their own code (and while they did symbolize laziness to me, they would not have been very time consuming to do right in the first place...)

    Anyhow, back to the main point: I don't see these being taught anywhere, under any major. Unless they were teaching the comp engineers in my class something other than what they were teaching everyone else, that is...

  33. Re:Language shouldn't matter! by Nerd+With+Nalgene · · Score: 2, Informative

    Sorry to disappoint you, but those kinds of questions that aren't really Computer Science problems make up nearly half the exam these days. It is very much language specific, and had almost zero control flow and logic, while only a very high-level concept of data structures is examined. You have a valid point about OSes and architectures, though--that's why it was switched to Java.

    --


    "as if nothing were solid...and that would be the end of the world, not fire and brimstone, but goo."--Rand
  34. Re:Language shouldn't matter! by geekychic · · Score: 2, Informative

    Actually, he's right. The test is a joke. I didn't take the class, opting instead to do about three weeks of personal tutoring with someone who did take the class (which is normally two semesters). I ended up getting a four on the AB test.

    Granted, I wasn't a complete novice in programming, but all the objected oriented concepts, data structures, big O notation, etc. were pretty new to me.

  35. Re:Rules by odin53 · · Score: 2, Informative

    There are a number of misconceptions about law and contracts with minors in your post and in the threads below.

    Contracts with minors are certainly not null and void; generally, they are both voidable and enforceable by the minor. This is why you don't want to enter into contracts with minors -- not because it's impossible to enter into a contract with them, but because the minor has all the power with respect to enforcing the contract.

    That said, the College Board doesn't really have to worry about whether the agreement that the minor signs before taking the test is voidable or enforceable by the minor. It only needs to worry that if the minor wants to enforce the contract, by the contract's terms the College Board can perform or "revoke" (as it were) its performance.

    The College Board does this by 1) having control of the one thing the minor wants -- the score; and 2) reserving the right to cancel it at any time under certain conditions. So if the minor wants to avoid the contract, the minor can -- but either has to deal with the College Board not sending the minor's score, or, if the minor wants to avoid the contract after the College Board sends the score (in this case, if the minor wants to blab about the questions after he gets the score), has to deal with the College Board cancelling the score if it finds out that the minor was blabbing. Note that the minor can't FORCE the College Board to send scores, because that would require ENFORCING the contract -- ALL of the contract, including the conditions the College Board places on providing the score. So the College Board has done what it can to maintain the balance of power.

    College Board to prosecute them for any offense at all -- haven't you heard of the fucking First Amendment?

    Um, the College Board is a private organization. It can't "prosecute" anyone. It also is not bound by the First Amendment. How would NDAs be enforceable otherwise?

    Copyright can't stop them, since it is a fact that the answer to question #115 is letter D, and you cannot copyright a fact.

    That's an interesting point. I certainly don't see that argument as a slam-dunk, though.

    Basically the only recourse they have again people discussing the test is arbitrarily making their score zero. This is stupid, it denies reality, and is generally evil.

    Why would it be evil to stop doing something for someone who promised to do something for you, but then decides they don't feel like doing it, AND has the gall to expect you to continue doing what you're doing??

  36. Link to Scheme book by meldir · · Score: 2, Informative
  37. Re:Are Pointers malloc() and free() Computer Scien by Xhargh · · Score: 2, Informative

    let rec fib n = if n < 2 then 1 else fib (n - 2) + fib (n - 1)

    compared to

    unsigned long fib(unsigned long n) {
    return( (n < 2) ? 1 : (fib(n-2) + fib(n-1)) );
    }

    (I have not programmed OCaml, but since it is a functional language I suppose it works a bit like haskell. )

    To use this recursive fibonacci-algorithm to compare functional languages and imperative languages is to cheat.

    In a imperative language fib(4) calls fib(2) and fib(3). These call fib(0), fib(1) and fib(1) and fib(2). And these calls fib(0) and fib(1). As you can see, a lot of work is done more than once.

    In a functional language (at least in haskell) fib(4) calls fib(2) and fib(3). fib(2) calls fib(0) and fib(1). fib(3) calls fib(1) and fib(2) - but since these values are calculated there is no need to calculate them again.

  38. Re:What do you use Forth for? by Anonymous Coward · · Score: 1, Informative

    It's mainly used for firmware. OpenBIOS uses it for instance.

    I have never used it (even though I write lots of firmware/BIOS code). I don't see the advantage of using Forth when you can create a C(++) environment using very little assembler (mostly initializing RAM so you have a stack). That's also more or less the approach of LinuxBIOS.

    Maybe the original poster can comment more...