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?

812 comments

  1. Testing times by Neil+Blender · · Score: 5, Funny

    For C++ you get 3 hours. For the new Java test, you get all day.

    1. Re:Testing times by System.out.println() · · Score: 5, Funny

      To code it or to run it? :)

      (On a related note, an exam based on AppleScript would take about a week...)

    2. Re:Testing times by Rick+Nixon · · Score: 0, Offtopic

      you should start a mod points fund

    3. Re:Testing times by Anonymous Coward · · Score: 0

      False. The Java exam (seeing as I just took it), is a 3 hour exam. There isn't a single un-timed AP exam.

    4. Re:Testing times by Anonymous Coward · · Score: 1, Interesting

      It was a joke....but I guess the moderators are as slow as java today. A similar joke a couple posts down got modded up as interesting.

    5. Re:Testing times by Kinesthe · · Score: 2, Interesting

      Not true. I took the ComSci A test yesterday, and you only have 3 hours. The test was as follows:

      Multiple choice (40) - 75 minutes
      Open-response (4, multi-part) - 105 minutes

      On another note, the questions were too simple. Although every subject was covered (recursion, inheritance, searching, sorting, etc), there was nothing in-depth. According to a past student, the C++ exam was similar last year. Maybe I'm just better at this than most high school students, but it seemed far too easy to get a 5.

    6. Re:Testing times by zhenlin · · Score: 1

      Eh? I had 1:15 for Section I and 1:45 for Section II -- 3 hours. Yes, I sat for the 2004 AP CS AB exam.

    7. Re:Testing times by Saeed+al-Sahaf · · Score: 0

      Holy cow. Are you chained to a monitor that displays only Slashdot? Got way too much time on your hands? Are you a spelling Nazi too?

      --
      "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
    8. Re:Testing times by ResidntGeek · · Score: 1

      Ditto... I wouldn't have thought it was possible for something to be easier than the course, until I took the test.

      --
      ResidntGeek
    9. Re:Testing times by Anonymous Coward · · Score: 0

      It is an extremely easy exam. Or was when I took it 4 years ago. It isn't any different than CS 1 course material in college though, which is the point.

    10. 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.

    11. Re:Testing times by TwinkieStix · · Score: 1

      How is this interesting? I'm sitting next to somebody who took the test and says you get 3 hours. This was obviously a joke. FUNNY NOT INTERESTING!

    12. Re:Testing times by Frizzle+Fry · · Score: 0, Redundant

      No, yes and no.

      --
      I'd rather be lucky than good.
    13. Re:Testing times by Anonymous Coward · · Score: 0

      The c++ exam was difficult. The multiple choice questions were usually manipulative, so you had to know to look for that. And the code segments were fairly challenging, but overall pretty fun.
      I ended up with a 3 unfortunately, but I certainly found the test very challenging. I was strongly against their switch to Java.

    14. Re:Testing times by some2 · · Score: 1

      Right on. I took it in 99 (C++ version). I was the only student in my class of 25 who could handle the hard "quilt" problem that we had. I got a 5. It didn't transfer anywhere anyway, other than to cover a menial java programming class. As far as I know, 99 was the first year for C++, and I think they handed out a low number of 5 scores, primarily due to misunderstanding of the use of for() loops (i = 0, i = 3, i++) or i 3?

    15. Re:Testing times by Anonymous Coward · · Score: 0

      Er, I assume you meant for(i=0; i == 3; i++), seeing as what you wrote, if it even compiled, translates to: for(i=4; ; ;).

    16. Re:Testing times by Frizzle+Fry · · Score: 1

      Just because it's by hand doesn't mean you couldn't have "references and resources". Many of my college programming tests were by hand, but were open-book. The AP is closed-book, though, right? It's been a while for me (good ol' pascal. Nothing beats that).

      --
      I'd rather be lucky than good.
    17. Re:Testing times by Ryan+Amos · · Score: 1

      The AP comp sci test is a joke. Most colleges don't even award much credit for doing well on it (my school only gave me 3 hours of ungraded credit for a 5 on the AB test.) The problem is that it's designed for most high school students, who barely know how to turn a computer on much less program one. The topics covered on the test are usually covered within the first month or two of the first "Intro to CS" class. So, yeah, it's really way too easy. But then, so were the physics and calculus exams. (it's been like 4 years since I took them, but I didn't have stellar physics or calc grades and still made 5s)

    18. 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.

    19. Re:Testing times by Anonymous Coward · · Score: 0

      When I took it (2 years ago, in their bastardized version of C++) it was closed-book.

      I'd be interested to see the Java test, if only to cringe at it. The College Board tries to teach programming theory at the expense of the real world; the C++ test was designed around a series of classes, proprietary to the College Board, that they forced you to use in your programs and on the test. They never mentioned C or any of the C++ APIs. I wonder if the Java class mentions the API at all.

    20. Re:Testing times by Dr+Tall · · Score: 1

      Yes, a 5 on the A exam is not too difficult. This is why colleges accept lower scores on the AB exam than they do on the A (if they accept A at all).

    21. Re:Testing times by thogard · · Score: 1

      Aren't all the AP tests a joke?
      A decade ago I was taking all the test because they were cheaper than paying tuition and buying the books. I passed something like 80 hrs of AP exams but your limited to 30 or so for credit towarrds any degree. The result is get two degrees and I could use 60 of the credit points and the other 20 worked well to get out of useless prerequisite classes. Then I transferred to a school that would only accpet AP to get out of prerequisite 1st semester classes.

    22. Re:Testing times by Anonymous Coward · · Score: 0

      So maybe he had a need for:
      i=4;
      while(1) ...

    23. Re:Testing times by nukem996 · · Score: 2, Insightful

      I would of taken the AB test but my teacher said I didnt have the math, Ive been hearing that and im gona see if I can take it next year. I know binary trees(im writing a Quake III BSP reader thats all binary trees), linked lists while a little different in java Ive done it I defenatly like the C/C++ way alot more, stacks and quesues I know about but not well I probably could learn.

    24. Re:Testing times by BlindSpy · · Score: 1

      I only got 3 hours for it. I thought that was standard for all AP college board tests.

      --
      Whoever dies with the most toys wins.
    25. Re:Testing times by norsk_hedensk · · Score: 1

      uhhh, dunno where you go but here in new york we only got three hours. which btw was more than enough time, but it was not ALL DAY.

    26. Re:Testing times by Anonymous Coward · · Score: 0

      who the hell doesn't konw what a stack/queue is? how about a link list? those are the basic fundamentals of csc, that is the least someone should know after taking any programming introduction course.

    27. Re:Testing times by sirGullible · · Score: 1

      no...i took it and you get 3 hours..

    28. Re:Testing times by Elfan · · Score: 1

      As someone coming from C to C++ I tentativly endorse the bastardized classes the College Board provided. A lot of my fellow students now who started with C++ can't keep data structures straight because they never had to deal with the gritty stuff, they were just told that "magic happens." The wannabe STL stuff allowed me to see what was going on behind the scenes, understand what this "class" stuff was all about, and then use the real STL far more effectivly when I started to use it for latter classes.

    29. Re:Testing times by Anonymous Coward · · Score: 1, Insightful

      Yeah. Well, when I took it in 1994, it was on Pascal. And ours did what yours did and also had us be familiar with programming a basic file system. In Pascal. Gah, it was crappy. (Stupid AP people had us using a programming language which sucked donkey balls.)

    30. Re:Testing times by Anonymous Coward · · Score: 0

      I like how this is "redundant". I was just thinking, "didn't someone else already write 'no, yes, and no' in this thread?"

    31. Re:Testing times by FrozedSolid · · Score: 2, Interesting

      It's probably worth mentioning that the sources to the "bastardized classes" (apstring, apmatrix, apvector, apstack, etc) were all GPL'd, as was all of the code to the Marine Biology Case Study (a series of exercises that involved examining, editing, and revising prewritten code, as well as implementing undefined methods to various classes).

      Interestingly enough, the new java case study is also GPL'd. However, parts of the exercise involve closed source classes, illustrating "black box" concepts.

      GPL violation anyone? :)

      --
      When all freedom is outlawed only the outlaws have freedom
    32. Re:Testing times by Anonymous Coward · · Score: 1, Insightful

      Simply knowing what it is is insufficient. (And yes, I know you were exaggerating.)

      A concrete example that shows the depth of knowledge necessary: "Look at these four samples of code that try to remove a node from a doubly-linked list. Which of them works properly?"

      Another example: "Look at this code and answer what it does." The code in question traversed a linked list, removing every node containing a value passed to the function as a parameter. One catch: under a certain condition, it would cause a runtime exception.

    33. Re:Testing times by gazoombo · · Score: 1

      I took it. You don't get all day. I was able to finish in the time provided with some nicely commented code. Under penalty of law I cannot discuss the multiple choice questions with you but in a few days I can tell you about the free-response part.

      --
      John Hancock
    34. Re:Testing times by aardvarkjoe · · Score: 1

      You might have one small problem: when programming by hand, you have to get the spelling, punctuation, and grammar right. ;)

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    35. Re:Testing times by nukem996 · · Score: 1

      lol ya

    36. Re:Testing times by the+gnat · · Score: 1

      There are three possible benefits to AP tests:

      1. You might be able to graduate early if you have enough AP credits. Even Ivy League schools allow it. I guess if you were really strapped for cash or just wanted to get your degree, this would make sense, but any one of my college courses was superior to all of my AP courses combined. I wish I'd had more AP credits for the subject I actually majored in (biology) instead of history and lit, but I would have just taken more advanced classes or humanities rather than leave early. On the other hand, I liked college and my parents could afford it.

      2. You can skip ahead to more advanced classes. This is often very useful; I got out of taking intro calc, which was required for my major. However, I'm dubious about how well some of these tests really represent college-level preparation. It's most useful for subjects like calculus or intro chemistry, which are very inflexible subjects.

      3. You get a more padded college application. This is actually more useful than it sounds; high scores on AP tests give admissions committees a better yardstick to measure you with. (This is true of many grad schools and the GRE as well; the dean of one very prestigious program told me they didn't really care about the GRE if they could evaluate your qualifications independently.) If you went to an elite private school, they already know what your grades mean. If you went to Bumfuck Regional High School ("Home of the the Fighting Bollweevils"), those 5's will add heft to your transcript and put you in better standing against the legions of East Coast prep school brats.

    37. Re:Testing times by the+chao+goes+mu · · Score: 2, Insightful

      Coding by hand is still not a great test of ability. In the real world half of a programmer's skill is in fixing the errors found in code (his own or others'). I don't know about the uber-leet types here, but I know my first draft of code always has at least a few trivial typos and maybe a few real bugs. The fact that I can get it to run on time is what matters, not my ability to write perfect source on the first try. (That said, I had to generate perfect code by hand for a number of course. So I know that is the way tests are run everywhere. But I still think it is not the best test of real world skills.)

      --
      Boys from the City. Not yet caught by the Whirlwind of Progress. Feed soda pop to the thirsty pigs.
    38. Re:Testing times by magefile · · Score: 1

      Agreed. That was the point of my post above; I am not great at remembering every last detail of every last member function, but give me a reference, and I think I'm pretty decent.

    39. Re:Testing times by Erratio · · Score: 1

      Not to mention the fact that most programming languages have very similar basic structure, so if you are familiar with and are able to quickly reference a wide variety of lanugages, your versatility improves and often the programs themselves since you can write specific parts in the language best suited to the task at hand.

      --
      I don't try to be right, I just try to make people think
    40. Re:Testing times by Jason+Zaman · · Score: 1

      We did get a reference book ... it was really useful because IMO the Java API is really bad... none of the functions make much sense eg. string.substring(0,5) will take the first 4 letters of the string ... it would make SO much more sense if it took the first 5 letters of the string. but i would not use Java for any real programs anyway so i suppose it doesnt matter... the C++ stuff is much better

    41. Re:Testing times by CastrTroy · · Score: 1

      I just finished my software engineering degree, and I think that there was no more than 2 classes where I ever had to write code by hand. This of course only refers to proper code. Many classes made us do stuff like write pseudocode, but most professors would accept anything from natural language, to something that very closely resembled C. I usually ended up using something that looked like basic.

      I can't understand why they would expect you to write perfect, or close to perfect code, on paper, when many experienced programmers can't even do it on a computer.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    42. Re:Testing times by murcon · · Score: 2, Interesting

      Reminds me of the (inaccurate, somewhat apocryphal) story about Perl and programming contests. Turned out to be a bit of an exaggeration.

    43. Re:Testing times by hesiod · · Score: 1

      > I can't understand why they would expect you to write perfect, or close to perfect code, on paper

      Because they are school administrators. They don't care about teaching anything, they just care about numbers & basic requirements. Okay, that's a bit cynical, but teachers usually only teach by the method that they were taught. Therefore, unless you learn like your teacher's teacher did (grandteacher?), you are being held back.

      Another way to look at it is this: Every person learns in a different way. American schools refuse to accept this possibility (I cannot comment either way on foreign schools), so they just find one way that works for a few, then they push it until it fits. School sucks unless you are a perfectly "average" person. I still think so, and I haven't been to one in years.

      Square peg, round peg... They all fit in the octagonal hole.

    44. Re:Testing times by Anonymous Coward · · Score: 0

      Uh... listen up high school kid, you no not of what you speak.

    45. Re:Testing times by entitude · · Score: 1

      I took the A test. Not only was it insanely easy, but we finished it before lunch, and had a LAN party in CompSci for the rest of the day.

      --
      ----geppy -
    46. Re:Testing times by Frizzle+Fry · · Score: 1

      Typos and such don't really matter. They don't expect you to perform tiny surgery on the code, just to get the general idea. The point of using a language like java (in my opinion) is that it's easier than having everyone use pseuodocode, because this exam is taken by students all over the country who will use vastly different pseudocode styles and assume different things about what is legal pseudocode, which would mean that grading each free response answer would take longer than eating a peach. What a predicament.

      Java and Pascal are nice becuase they effectively act as an "official pseudocode". In practice, allowing pseudocode would mean that all of these high school students would waste their time learning "AP-compliant pseuodocode", which would be a waste of time. I remember what high school AP classes were like, especially when I hear on these threads from people taking the classes now. It's like looking in a mirror. Only not.

      --
      I'd rather be lucky than good.
    47. Re:Testing times by Minna+Kirai · · Score: 1

      Which is a PITA, as knowing how to use references and resources is a major part of programming.

      This is a Computer Science exam. Knowing how to program is not a part of CS. (I could name some major CS professors who can't program...)

      There should be no need to use any nontrivial API call for the test. For example, if the student was asked to write a recursive sorting algorithm, and he turned in a 2-line call to a org.apache.util.Quicksort, that should recieve zero points.

      Whereas if you were a professional programmer on the job, reusing the existing library is exactly the right thing, and showing off your CS-chops by reimplementing known algorithms is just a risk.

      (One of many ways school is unlike real life... "using references and resources" is a big part of any real work, but disallowed from almost any standardized exam)

    48. Re:Testing times by Anonymous Coward · · Score: 0

      You get 1 hour and 15 minutes for 40 multiple choice questions and then 1 hour 45 minutes for a free-response section. It was very easy. The problems for the free-response have been released, you can also see samples at http://www.collegeboard.com/student/testing/ap/com psci_ab/samp.html
      of some problems. Its really easy seeing as how you can get about 70 points of 100 and get a 5.

  2. Good for them! by RomSteady · · Score: 1, Funny

    FWIW, I'm currently employed as a developer, and I'm glad to see our young people being tested on their knowledge of Java.

    After all, if being a developer has taught me anything...it's that I need to know all about my caffiene. [grin]

    --
    RomSteady - I came, I saw, I tested. GamerTag: RomSteady / http://www.romsteady.net
    1. Re:Good for them! by Anonymous Coward · · Score: 1, Interesting

      My question would be - where are they learning this stuff? Clearly it never has, isn't and probably never will be something taught in school... and it seems really weird that you would be allowed to take a highschool test on a topic that you learned entirely on your own, in your own time, with your own resources, on your own whim...

    2. Re:Good for them! by dAzED1 · · Score: 2, Insightful

      I think you should take pride in the fact that as a developer, you're employed at all!

    3. Re:Good for them! by dresgarcia · · Score: 1

      Well they learn it in school. At least I did when I took my ap computer science test on C++. I took a yearlong ap computer programming course, at the time it was known that they would be migrating to java (even tho it sucks b(ig)f(loppy)d(onkey)d(ick)) so they started to integrate it more and more into the curriculum.
      The interesting thing is in order to get college credit you need to take the BC and score a 4 or a 5 so when I took the AB it was a complete waste of my time. Especially when i would have done just as well on the BC.
      Maybe all the java based programs I am familiar with are poorly coded but the language tends to pump out programs that can do cool things but are very slothy and inneficient. Why is it ebing pushed so hard to become a standard? Most people I know that use it hate it and only code in it because they have to.

    4. Re:Good for them! by LincolnQ · · Score: 3, Insightful

      They're not being tested on their knowledge of Java. They changed from C++ because C++ sucks various reproductive appendages of various mammals with varying descriptors relating to size, shape, and color. For learning, that is. I won't argue that it's useful for production because of its speed.

      Anyway, the students are not being tested on their knowledge of Java. They're being tested on actual computer scientific concepts, such as the object-oriented design model, inheritance and polymorphism included, as well as algorithmic design concepts such as big-oh notation and all that. I took it last year in C++ (and got a 5) -- I'm assuming I could ace it again, even though I have never written a java application in my life, simply because it does not test you on Java.

      The reason they changed is pretty obvious -- C++ has header files and awkward inheritance and so forth. With a more object-oriented language, you learn more about data structures and less about 'virtual'. You also get interfaces in Java, which is a much better implementation (pun only sort of intended) of multiple inheritance.

    5. Re:Good for them! by Anonymous Coward · · Score: 0

      There is not BC exam in computer science. There is an A exam and an AB exam. Perhaps you took the A exam and not the AB exam?

    6. Re:Good for them! by Bremen24601 · · Score: 1

      AP tests are just like SATs, anybody who wants to pay can take them. I knew quite a few kids who took AP tests that our school didn't teach for. I wish I had followed suit, the ones I did get counted for nothing since they were in my major, besides I got a 5 on the chem and learned almost nothing anyway :-\

      --
      Blessed are the young, for they shall inherit the national debt. --Herbert Hoover
    7. Re:Good for them! by Curien · · Score: 1

      The AP curriculum used only a (very small) subset of the C++ language. You were specifically forbidden from using certain features on the exam. The teacher probably never told you about that -- it's just assumed that if they didn't teach something to you, you wouldn't use it.

      FWIW, switching from C++ to Java had nothing to do with the educational merits of either language. It had to do with most colleges using Java in their curriculum, so ETS figured they should follow suit.

      --
      It's always a long day... 86400 doesn't fit into a short.
    8. Re:Good for them! by Rallion · · Score: 2, Interesting

      C++ teaches you more about writing good code, however. People argue with me on that, and say that the sloppy code RUNS, and teaches kids it's okay. But Java doesn't teach people to be any cleaner. I see plenty of comments about how most Java code is bad code around here. In fact, I would say that it does a worse job at teaching good practice because it removes a good deal of responsibility from the coder due to the way it handles memory management. It's fine if you stick with similar languages, but habits that made wonderful Java programs would make you cringe in C++. I've seen a raytracer written in C++ that never used the delete command. I kid you not.

      C++ might be more complex, but hey, computers are complex. Programming can become very complex. Kids need to learn to deal with that, as well as learning about pointers and memory deallocation and all the various ways one can screw up. The earlier they learn it the easier for them.

      Also, I wouldn't say that interfaces are a better way to do multiple inheritance. It may be safer, but it's less powerful. I speak from experience, having been annoyed by the limitations of interfaces at times.

    9. Re:Good for them! by Frizzle+Fry · · Score: 1
      The AP curriculum used only a (very small) subset of the C++ language. You were specifically forbidden from using certain features on the exam.

      That's pretty similar to most C++ programming jobs, really.
      --
      I'd rather be lucky than good.
    10. Re:Good for them! by bkST88r · · Score: 1

      "Anyway, the students are not being tested on their knowledge of Java. They're being tested on actual computer scientific concepts, such as the object-oriented design model, inheritance and polymorphism included, as well as algorithmic design concepts such as big-oh notation and all that."

      This is true,I took the AP CS level AB yesterday and it was starkingly similar to the AP Computer Science level A that i took last year in C++. I'll see if I can elaborate more later, but the above comment really hit it on the mark

      --
      -bkST88r
    11. Re:Good for them! by EvilSporkMan · · Score: 1

      If you don't know that Java won't let you do implicit typecasting to a more restrictive type (int to double, or Object to String, say), you're in for a world of hurt on the exam. I don't know if C++ allows implicit casting of objects (I took AP CS A this year, it was a complete joke - teacher sucked, class slow, AB not offered, and this was at a special math, science, and technology center; my only experience in C++ is said center's 9th grade intro class), but it's certainly one of my pet peeves about Java. Point being that students are tested somewhat on knowledge of Java. Students are also tested on knowledge of their cute little Marine Biology Case Study, though a smart kid could probably read the code and figure it out in the test time without too much difficulty.

      --
      -insert a witty something-
    12. Re:Good for them! by zaffir · · Score: 1

      First off, many highschools are offering computer science classes. Some have taken more time to come around, but they ARE offering them. Secondly, any student can take the AP test. Your school needs to do a little work, but most are more than happy to do what little is required for you to take the exam.

      --
      "Upon attaching the waterblock to my penis, I began to notice that I know nothing about computers." -- JRockway
    13. Re:Good for them! by Elfan · · Score: 1

      I took a US Political Science course my senior year. Since it was full of people from the honors history classes we basically read Plato and discussed interesting current events, doing very little of the "these are the three branches of gov't" stuff that we were "suposed" to be doing. Most of the kids basically studied for the exam on their own and did fine, and we all had the amazing opportunity of reading "The Republic" in high school.

    14. Re:Good for them! by orasio · · Score: 1

      Sorry, I learned Java, and never looked back. I hate pointers, and I don't think my time, or my mind should be wasted testing for that kind of thing. Especially with the newest CPUs, there is a need for automated memory managing, think multiple pipelines, multiple caches, you shouldn't handle that kind of thing from the programmers perspective, unless you are writing a OS kernel or an optimizing compiler.

    15. Re:Good for them! by simonfairfax · · Score: 1

      I don't believe that any OO language actually lets you do this, though my knowledge of C++ is rather lacking.

    16. Re:Good for them! by LordKazan · · Score: 1

      All those clever tricks that I could have used that I was forbidden from. My prof warned me off from using pretty much every useful performance trick in my book. (Pointer arithmetic array traversal, etc). I got a 5 on both the A and the AB tests back in teh day (when they were both in C++, I took them two years apart). I made comments in my free responses about how it would be more efficient to do things in a certain way

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
  3. First Post! by savindwales · · Score: 0, Troll

    Do I get AP credit?

    --
    I got cheeeese, hoez, and a bunch of fucking dope. / I got peeeeeas, coke, and some killaz at da doo'.
  4. My impression of the exam by Profane+MuthaFucka · · Score: 5, Funny

    The exam takes too long to complete, and requires way too much memory as well. They should go back to Pascal, as it was more efficient.

    --
    Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    1. 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...

    2. 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?)

    3. 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

    4. Re:My impression of the exam by Anonymous Coward · · Score: 0

      TWAJS

    5. Re:My impression of the exam by Profane+MuthaFucka · · Score: 4, Funny

      why the hell is the parent getting modded "funny" when any idiot could see he was merely being "informative?"

      Good lord, people...

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    6. Re:My impression of the exam by Anonymous Coward · · Score: 0

      why the hell is the parent getting modded "funny" when any idiot could see he was merely being "informative?"

      Good lord, people..

    7. Re:My impression of the exam by John+Courtland · · Score: 1

      This is actually a good idea, as Pascal's WHOLE purpose was to teach programming. Most important, IMO, is that don't have to deal with exceptions (although you could if you wanted to), that takes up time if they want you to code Java properly. I took the test twice, junior year and senior year, both AB exams, for Pascal and C++ (since, of course with my luck, they changed tests from my junior and senior years). I actually did better on the C++ exam, and I attribute that to being taught Pascal first. Pascal (at least now) has a very good OO design for n00bs. Like a diving board into the world of HL languages.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    8. Re:My impression of the exam by the+morgawr · · Score: 1
      I learned PASCAL first and LISP second. PASCAL is an OK language but I think some parts of it lead to brain rot.

      Call me old fashioned (and probably biased; I've said on /. before that I HATE java...), but I like the idea of teaching SCHEME as a first language because the syntax of the language doesn't get in the way and lets you focus on the important stuff you should be focusing on in a first CS course, logic, program flow, and basic design concepts.

      MIT has a course and book available online but I don't have time to look up the URL.

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    9. Re:My impression of the exam by John+Courtland · · Score: 1

      Scheme is cool, and if someone is serious about becoming a programmer, they'd better learn it early or else they'll get into rigid learning mode with all the procedural/OO languages. Unless they actually learned how to learn and didn't just commit everything using rote memorization.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    10. Re:My impression of the exam by stand · · Score: 0

      1. Answer A
      2. Answer D
      3. Answer E
      4. Answer C
      5. Answer C
      6. Answer D
      7. Answer A
      ...
      --
      Four fifths of all our troubles in this life would disappear if we would just sit down and keep still. -C. Coolidge
    11. Re:My impression of the exam by watanuki · · Score: 1

      On the other hand, I heard they had less hassle cleaning the place afterwards - garbage piled up for a while, but it was cleaned up eventually.

    12. Re:My impression of the exam by ziggy_zero · · Score: 1

      why the hell is the parent not getting modded at all when any idiot could see he was merely being "funny?"

      Good lord, people..

      --
      I belong to the ______ generation.
    13. Re:My impression of the exam by Nerd+With+Nalgene · · Score: 1

      Actually, there is a way to take it on a computer now. You have to convince the people in charge that your handwriting is so INCREDIBLY, horrifically illegible that it would be impossible to grade. A friend of mine managed it, but the rest of us were stuck with pencils.

      --


      "as if nothing were solid...and that would be the end of the world, not fire and brimstone, but goo."--Rand
    14. Re:My impression of the exam by Anonymous Coward · · Score: 0

      What is efficient? Efficient from a corporate point of view is that it does what it should do as cheap (over the total time of usage) as possible.

      The most expensive part by far is the programmer. In the netherlands, you can buy a nice PC server for half a months programmers wages. A bit of memory is maybe one or two days work.

      Efficiency in the program itself is important for computations that work at the limit of current possibilities (huge data sets or gazillions of cycles).

      Pascal is a nice language to learn procedural programming, that's true, but the current credo is object oriented, which actually is better maintainable if well designed.

      And I think Java is a better tool than C++ to learn OO programming, as memory management in C++ can be quite cumbersome for larger projects. I'm not saying Java is better than C++; I'm actually a Java programmer with a preference towards C++, but it's easier to learn (because it's more limited).

      As a last point, I can see efficiency can be important for schools. They tend not to have the money for larger machines the way corporations do. Choosing for Java in stead of Pascal is choosing for corporate use in stead of academic use.

    15. Re:My impression of the exam by Jason+Zaman · · Score: 1

      i dont know about others but i found the A level exam very easy ... i never really studied for it and i was finished 45 minutes early there are 2 parts to the exams 1) the multiple choice section. 2) the Free Response part. we got 1 Hr,15 Min for the multiple chice and 1Hr 45Min for the Free response. I finished both parts really early and some other people in my class were done not too long after me.

  5. Wow. by Anonymous Coward · · Score: 0

    I probably got a 1.

  6. Only 1 year? by Reorax · · Score: 1

    the exam has been based on C++ (1 year) Is this true? The test was only in C++ for 1 year? Wow, I got really lucky taking it last year...

    --
    This sig is only here so people stop skipping the last lines of my posts.
    1. Re:Only 1 year? by System.out.println() · · Score: 1

      Yeah, I thought the same thing. I was under the impression that people have been getting AP credit for C++ for years...

    2. 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.

    3. 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)

    4. Re:Only 1 year? by Peepsalot · · Score: 1

      Wow, I got really lucky taking it last year... Not sure where they got their information from, but I took the C++ AP exam 5 or 6 yrs ago, and the year before that I took the Pascal exam. Sorry to say this bro, but like so many other slashdotters, you haven't gotten lucky yet.

    5. Re:Only 1 year? by Maznafein · · Score: 1

      That sounds about right. I did the AP computer science exam in '98, I did mine in PASCAL.

      Dear lord, I actually enjoyed coding frogger and pacman in that stupid language. Shit ran well on an 286 though :)

      Now you kids have p4s and all that lovely stuff. I thought I was special when they upgraded us to the 286s :p

      -maz

      --
      <happiness>beer</happiness>
    6. Re:Only 1 year? by SomeGuyFromCA · · Score: 1

      Yes, 99 was the first year C++ was used. I took it that year as well.

      --
      if the answer isn't violence, neither is your silence / freedom of expression doesn't make it alright
    7. Re:Only 1 year? by statusbar · · Score: 1

      It is easy to get that impression, most people say they got it 15+ years ago.

      --jeff++

      --
      ipv6 is my vpn
    8. Re:Only 1 year? by spectral · · Score: 1

      No, because only 5 years ago did they switch to C++ (and right after the switch they knew they were going to Java, so I don't know why they bothered with the C++ transition, unless the process was already irrevocably chugging along the path towards C++ by the time they made that decision).

    9. Re:Only 1 year? by Anonymous Coward · · Score: 0

      Why did they switch to C++ when they knew they would switch to java sooner or later? How many people in HS learned Pascal? I know I did, but my year was the last.

    10. Re:Only 1 year? by Hooded+One · · Score: 1

      I think it was Pascal until 10 years ago, then C++ until a year ago.

    11. Re:Only 1 year? by BlindSpy · · Score: 1

      No C++ was only for one year - The college board used it as a "transition" language into Java.

      --
      Whoever dies with the most toys wins.
    12. Re:Only 1 year? by xenocyst · · Score: 1

      bzzt, you're wrong

      from 99 to 03 it was given in C++
      before 99 pascal was used
      and in 04 going forward Java will be used,
      at least until colleges change their mind about what to teach first year cs students
      (we already switched to some devilish combination of scheme and java, don't get me started)

      --
      And, no, I should not have used the goddamn Preview mode first.
    13. Re:Only 1 year? by spectral · · Score: 1

      How exactly am I wrong? 5 years ago (99) they switched to C++. While I was in my AP CS class, I heard rumors of them already deciding to switch to Java in 5 years. I took it in 99. So they decided all the way back then that the change to Java was going to be made, I'm pretty sure. I didn't say what was happening before 99..

    14. Re:Only 1 year? by Hooded+One · · Score: 1

      Nope. They switched in 1999.. In that case, I have no idea where the 10 years came from; I only made an educated guess regarding it earlier.

    15. Re:Only 1 year? by g-doo · · Score: 1

      No...for as far back as I can remember, our high school used C++ for years in APCS. Other slashdotters are saying this too.

    16. Re:Only 1 year? by thrice+rocks! · · Score: 1

      IIRC, the C++ exam was used from 1999 to 2003 - the College Board switched to it the year before I took any APCS (I took A in 2000 and AB in 2001) and continued apparently through last year. I actually thought they'd intended to change it last year? I guess it didn't happen.

      Anyway, that's definitely longer than one year. Considering I took exams two different years and they were both in C++, I'm pretty sure the "one year" is wrong.

    17. Re:Only 1 year? by System.out.println() · · Score: 1

      I think I figured it out... what they meant was "one year AGO" and "ten years AGO".

      Maybe.

      Or the editors are still dumb, that's always a possibility.

    18. Re:Only 1 year? by Anonymous Coward · · Score: 0

      Just wanted to confirm that I too took it in '99 and already before taking the test I was told that they would be switching to Java soon. I didn't realize they meant 5 years though, as I thought they were just using C++ as a few year transition.

  7. Language shouldn't matter! by ajiva · · Score: 5, Insightful

    I don't see how the language should matter in these sorts of exams. Personally I rather have the AP test be questions about algorithms, ideas and concepts. Something like:

    1) Write PseudoCode for an AVL Tree
    2) Describe the benefits of a hashtable

    etc...

    No coding, just ideas that a smart student can take to any language, whether its Java or C++ or anything else.

    1. Re:Language shouldn't matter! by addaon · · Score: 5, Funny

      2) Describe the benefits of a hashtable

      it keeps your hash off the floor.

      --

      I've had this sig for three days.
    2. Re:Language shouldn't matter! by tedshultz · · Score: 4, Funny

      It's hard to write pseudo code in scantron bubles.... This is a good thing as multiple choice got me this far in life...

    3. Re:Language shouldn't matter! by NitsujTPU · · Score: 2, Interesting

      That doesn't really cover "first year" CS though.

      I would imagine that creators of AP tests are trying to test what a student entering university would test out of. At my alma matter, the first class was basically coding, then data structures, then algorithms and hashing, and so forth.

      The language seems unimportant to us because it is unimportant to us, but with no knowledge of any languages, how is a student to learn the rest?

    4. Re:Language shouldn't matter! by Goyuix · · Score: 5, Insightful

      The problem with this approach is it rules out an entire class of problems such as class B inherits from class A, has such and such static methods and member variables..... what is the output of this code?

      While writing code is somewhat less effective than perhaps discussing principles and theory, you certainly need a language as a base to "measure performance" in a test like this. Not that it isn't without its own set of problems, but it is a necessary evil. You need to have a base-line to measure objectively, something that is hard to nail down using just pseudo-code.

    5. Re:Language shouldn't matter! by Mateito · · Score: 2, Funny

      > 2) Describe the benefits of a hashtable If you keep a hashtable, you know who's flat you've got to knock over when you really need a toke.

    6. Re:Language shouldn't matter! by YahoKa · · Score: 1

      I'm doing International Baccalaureate Computer scicence, and it does that. You write your exam code in a pseudocode that an examiner can understand. The course also requires you to to write a program (of reasonably significant size for a HS student) and have that marked, but you can use any language you want since, ultimately, the code isn't what counts - it's the documentation and the algorithms. Implementation is just picky details.

    7. Re:Language shouldn't matter! by eisenbud · · Score: 2, Insightful

      Sadly, I don't think that AP Computer Science gets up to that level of algorithmic sophistication. At least it didn't 12 years ago (!) when I took the test in Pascal. I would have been a lot less bored in the class if it had. I don't remember much about the actual exam back then except that I thought it was easy, and got a 5. I think Java is a really sensible language to teach it in, though: less messy than C++, good exposure to object-oriented programming, and far more useful in the real world than Pascal these days.

    8. Re:Language shouldn't matter! by Vellmont · · Score: 1

      Not a bad idea, but you're aiming WAY to high. These are high school programming classes, not Junion/Senior College level data structures and algorithms class. I'd imagine you'd get college credit for the low-level C++ or Java programming classes, which is kind of worthless since those classes aren't even part of a CSCI major where I went to school.

      --
      AccountKiller
    9. Re:Language shouldn't matter! by Frogbert · · Score: 1

      Damn straight, however I wouldn't mind writing C++ on an online exam nealy as much as I mind writing it on my Uni exams, that is to say by hand.

      Let me clue all you educators in who are reading this. C++ was NEVER made to write by hand, it's hard and it takes ages, lots of people I know had never realy had a need to draw an ampisand or "curly" braces before C++, now they need to and without practice, its slow. Ending a line with a semi-colon makes sense if a compiler was reading the exam but they are not, its just unintuitive.

      I don't have a problem writing C++ and I understand the need to remember the language in C++ however the programming should be left to the keyboard.

      So says the straight high-distinction student...

    10. 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.

    11. Re:Language shouldn't matter! by skifreak87 · · Score: 4, Insightful

      Or if they do want you to program, let you do it in one of several languages. In a software engineering course I just took, our prof would often make us do each assignment in a new language (one in C, one in Java, one in AWK). Consequently, I feel like I can pick up new languages rather easily which I feel is much more valuable than 5+ yrs coding in x-language which might dissapear in 5 years. I feel like CS exams should be about CS concepts, not specific programming languages. If you want to make students program, let them pick their fav lang for it (and if they pick C for something that'd be much easier in an OO-language, let them try).

      Make them describe concepts as opposed to just programming. Or in an algorithms/data structures class I took (very hard question), throw them an N^3 algorithm and a bunch of functoins they can us e (and the complexity for each) and make them improve the algorithm to be subquadratic and use at most quadratic space. Make them assess tradeoffs, explain concepts and demonstrate knowledge of WHY what they're doing is the best way/a good way instead of just knowing that it works.

    12. Re:Language shouldn't matter! by Qzukk · · Score: 1

      The problem with this approach is it rules out an entire class of problems such as class B inherits from class A, has such and such static methods and member variables..... what is the output of this code?

      Which you could do just as easily in pseudocode as well, you're already halfway there.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    13. Re:Language shouldn't matter! by Anonymous Coward · · Score: 2, Interesting

      At the University of California, Irvine, we learn AVL trees and hash tables in the third quarter of the first year. The APCS AB test gives credit for the first two quarters of computer science here, although most students with AP credit take the honors intro series (including myself.)

      The people with no starting programming experience have a lot of trouble the first quarter, some trouble the second quarter, and eventually get it by the third quarter.

    14. Re:Language shouldn't matter! by Lehk228 · · Score: 3, Insightful

      Implementation is just picky details. It's that sort of thinking that has led to the horribly bloated and slow apps we have today, loading applications and getting work done isn't any faster than it was in the 180mhz days

      --
      Snowden and Manning are heroes.
    15. 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.

    16. Re:Language shouldn't matter! by ncc74656 · · Score: 2, Insightful
      I don't see how the language should matter in these sorts of exams. Personally I rather have the AP test be questions about algorithms, ideas and concepts. Something like:

      1) Write PseudoCode for an AVL Tree
      2) Describe the benefits of a hashtable

      etc...

      I never took this test (don't even know if it would've been available back in the late '80s), but I'd assume that it's designed to be a substitute for courses such as CSC 135. Data structures get brought up in the next couple of classes (136 and 269), so unless a year of AP computer science is supposed to be worth a year of introductory CS (you'd ordinarily take 135 & 136 alongside a bunch of general-requirements courses), I'm not so sure data structures would be something the AP test would cover. (I'm not saying that yours is a bad idea, but it might be outside the scope of what the course is trying to cover.)

      --
      20 January 2017: the End of an Error.
    17. Re:Language shouldn't matter! by paulymer5 · · Score: 1

      The whole test is mired in implementation-dependent code. A good deal about the collections (think question 2 on the AB exam) doesn't actually have much to do with the theory behind the data structures (stack, map, and their implementations by trees, hashtables, linked lists, etc.) but more on how to use the already-implemented Java provided classes. I took (and taught, through a rather strange set of circumstances) the AB test. In fact, a great deal of the material is presented as "This is a black box class that you don't need to know about." Seemed more like they we're tying us into specific Java interfaces than generic theory. Oh, and the Marine Biology Case Study question on AB could have easily been completed by the A testers. For crying out loud, the A MBCS question was harder than the AB. The College Board had a new emphasis on "DO NOT DISCUSS THESE QUESTIONS, blah blah, COPYRIGHT VIOLATATION...blah blah" was funny. Yeah, like we're not going to talk about specific questions on the test.

    18. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I can see it now... Good old M$ will be saying something like "Language doesn't matter! This is why only .NET should be taught in schools!"

    19. Re:Language shouldn't matter! by DreadSpoon · · Score: 1

      Knowing algorithms is pretty useless if you don't know how to code them, or write nightmarish code that can't be understood, can't be maintained, can't be debugged, and can't be marke... well, OK, so it could be sold, but still. ;-)

      And to be honest, with most languages, knowing algorithms isn't half that important, because the runtime takes care of it for you. Only if you're coding in low-level languages does it become important to know who to write an efficient search algorithm.

      And it's those very low-level languages in which I'd want to see AP results for any employees. A coder who can write a very efficient hash table but doesn't understand how C "strings" work or who thinks MFC is the paragon of design is a coder I'd rather see shot than hired.

    20. Re:Language shouldn't matter! by Goyuix · · Score: 1

      Yes but in pseudo-code there is no defined behavior of "static int mutex" member variable inside a class like there is in Java. Trying to explain that in the test for pseudo-code would lead to possible ambiguity and introduce un-needed overhead since you need a language to learn and practice these theories anyway.

    21. Re:Language shouldn't matter! by Yodason · · Score: 1

      I took the test, I've been programming opensource for a few years, and think it was absolutley a horid test. Sytnax and language quarks were MUCH more important on the test then any acutal algorithmic knowlege. Having taken the A test in c++, I also think the A test was better written. Some of the questions on the test were way past ambiguous.

    22. Re:Language shouldn't matter! by MostlyHarmless · · Score: 1

      I took the test freshman year (three years ago), when it was still C++, but one can probably assume that the material on the test did not change substantially when the language did. Beyond just the language itself, the test did cover basic data structures: stacks, vectors, queues, linked lists, binary trees, and hashtables. And low-level implementation was indeed part of the test: I remember having to code linked lists and to implement other structures as modified linked lists. We wouldn't have to write our own hashing functions, but we did have to be familiar with the concept of what a hashing function did. Other topics included sorting, recursion, Big-O, etc. All in all, I think the test itself did a decent job of teaching CS fundamentals rather than just the language (although not everyone in my class derived that lesson, or any lesson other than "pointers suck").

      The college board site has more information about the test (free.reg.req. for the juicy stuff).

      --
      Friends don't let friends misuse the subjunctive.
    23. Re:Language shouldn't matter! by IamTheRealMike · · Score: 4, Insightful
      Yeah, I'd agree with that. To be frank, there's a huge gaping hole in the education market for courses that teach you how to write software. Computer Science is great and all, and I'm enjoying it, but I know that a lot of what I'm being taught is pretty useless.

      OS Design? Fascinating, but ultimately irrelevant for 99% of coders. Implementing your own hashtables? Useful to gain an insight into how they work, but virtually any development platform people work in except raw C these days will provide highly tuned and optimized hashtable implementations. If anything you shouldn't roll your own, as it'll make your code less readable, more bloated and probably slower.

      But it seems looking at the course material that important topics for writing real world software is simply not taught. Where are the lectures on writing internationalized code (think character encodings, flippable UI design etc). Where are the lectures on writing code with low startup overhead? What about teaching people the merits of various toolkits? Accessibility? Version control theory? (to be fair I think this is talked about at some point on my course, but I know some that don't)

      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?

    24. Re:Language shouldn't matter! by Yodason · · Score: 1

      Exactly my point. Non pseudocode is obscene to try to right programs in by hand. Its nearly impossible to write a syntatical accurate program (especially one with pointers, lots of casts/refrence/derefrences, etc, and not make some type of syntaxtical, not logical, mistake. I know if I missed points on the essays it was because of stupid syntaxtical mistakes arising from not being able to write in pseudocode, but instead being forced to write in a language designed for use on a computer. Whats the ap comp sci ap test? How well you can write java code by hand. Not computer science.

    25. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      You clearly missed the point. Computer SCIENCE is not about languages, trivialities of language implementation, or the like. SCIENCE is the pursuit of knowledge for the sake of knowledge.

      I'd expect an InfoTech program (via business or liberal arts) to worry about inheritance, PHP, VB, .net, Qt, etc. A science program shouldn't even care.

    26. Re:Language shouldn't matter! by zorander · · Score: 1

      View java as a formal declaration of pseudocode. You can't expect people grading the exam to interpret what different students' ideas of pseudocode are, and you don't want to stuck the students with a BNF description of "pseudocode" before the test just so they can write it acceptably. Not all of the graders are familiar with everything out there, in fact many of them are high school math teachers, and familiar with only java and/or c++.

      For problems in my theoretical discrete math course involving pseudocode, I usually write something that falls closest to python with a tinge of ML (functional concepts lend themselves well to theoretical problems) or Pascal (distinction between := and =, for example), but really in between several languages that I'm familiar with. The difference, is that I know my TAs. They know java, they know C, they know ML. Python is pretty inherently readable, if you're not stupid. This does not accurately represent AP test graders.

      Though in retrospect, a BNF description would truly test quite a bit more of essential computer science (formal language concepts required just to fill out the test completely :)

      Yes I agree that the understanding of major algorithms should be the emphasis. I think more meaningful recursive ideas should be present too, but I just finished up a functional programming course, so I'm in that sort of mode.

      Brian

    27. Re:Language shouldn't matter! by cavebear42 · · Score: 1

      No, he's right. Java is a single inheritance lang, C++ is multiple. I code in both and change the structures of my code depending on language. Also, I would take a different approch to organizing my visual compenents based on the way a language works.

      Further, teachers need to know how to organize instruction. If one teacher teaches HS kids VB, one perl, and one VB, no matter how the test is made, one of these 3 classes will have an advantage over another. The only fair way is to have a standarized approch to the test.

      Even simple questions have very different answers in a loosly coded language like perl vs. a impossibly hardly coded language like java.

      I'm happy to see java make another move ahead when it seems to be losing ground.

    28. Re:Language shouldn't matter! by pyite · · Score: 1

      Heh, the failing of the exams are that they are too damn easy. When I took them (A and AB), I literally put my head down and closed my eyes during the middle for 15 minutes, then got back up and started working again. Yes, I did get a 5.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    29. Re:Language shouldn't matter! by Lehk228 · · Score: 1

      Well, I'm not a CS major, just program as a hobby sometimes, but I believe the solution is simple, though cruel, include a mandatory, two semester component on TI-86 programming. when every statement takes an appreciable amount of time to execute you quickly learn to program in ways that speed up interface response.

      --
      Snowden and Manning are heroes.
    30. 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.

    31. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      It's that sort of thinking that has led to the horribly bloated and slow apps we have today, loading applications and getting work done isn't any faster than it was in the 180mhz days

      I disagree. I think that the reason things are so horribly bloated and slow is because we still design programs in such a way that the implementation is still relevant. 90% of all programming done today is the same stuff done yesterday. We reimplement so much code, do so much emulation and cloning just because the original code wasn't written to be timeless in the first place.

      A well-designed program (such that doesn't exist) wouldn't feel like it had been programmed. It would feel like it had been shaped.

    32. Re:Language shouldn't matter! by pyite · · Score: 5, Insightful

      OS Design? Fascinating, but ultimately irrelevant for 99% of coders. Implementing your own hashtables? Useful to gain an insight into how they work, but virtually any development platform people work in except raw C these days will provide highly tuned and optimized hashtable implementations. If anything you shouldn't roll your own, as it'll make your code less readable, more bloated and probably slower.

      No offense, but people like you are the reason I'm glad I didn't major in CS. If you can't see the value of OS design and learning how hash tables work, stop, do not pass go, do not collect your diploma, it's utterly wasted on you. I'm amazed at how many CS graduates I've spoken with that have never heard the name Donald Knuth or at least borrowed a copy of The Art of Computer Programming. The fact that Computer Science is a MATHEMATICAL SCIENCE seems to elude most people who'd rather worry about how good of programmers they are than about knowing how the hell things work. None of the coding I learned came from a school, and frankly, I'm quite happy about that, as too many schools are all about the "latest and greatest" technology. The AP exam is a PERFECT example. Not sure if This Fool still has anything to do with AP CS, but his AP CS book was probably the worst computer related book I've ever read (littered with errors, for starters).

      It seems no one cares how things work. The "black box" analogy was emphasized in AP Computer Science from Day 1 when I took it. The worst possible thing you can be telling budding Computer Scientists is that we don't care how it works, it just does. That's fine when you've proven your ability to perform and are working in an environment where it's literally impossible to know how everything works. It's not acceptable, however, when you know nothing and the sole purpose of a course is to teach you. OK, I've gotten myself quite angry over this post, so I'm ending it now.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    33. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      Just like a first year college course...
      Oh wait, most schools don't do that. Only one I know of is MIT. The AP exam is supposed to a test for college credit of a 100 level course in whatever subject.

    34. Re:Language shouldn't matter! by Jack+Greenbaum · · Score: 2, Insightful
      • OS Design? Fascinating, but ultimately irrelevant for 99% of coders.

      Right. Most OS Design classes teach things like the difference between a process and a thread. Certianly no one needs to know that!

      • Implementing your own hashtables? Useful to gain an insight into how they work, but virtually any development platform people work in except raw C these days will provide highly tuned and optimized hashtable implementations. If anything you shouldn't roll your own, as it'll make your code less readable, more bloated and probably slower.

      And every one of those premade hashtables gives a hook for you to create your own hashing function. Understanding how the hashing function relates to the effectiveness of the table, and understanding how the expansion of the number of buckets in the hash table, are critical pieces of knowledge for using those hash tables.

      • But it seems looking at the course material that important topics for writing real world software is simply not taught.
      A Computer Science program is not a professional school. Go to ITT Tech if you need someone to teach you to program, vs learn what programs to write.
    35. Re:Language shouldn't matter! by Curien · · Score: 1

      Hey, genius. If you were (by your own admission) totally inept at programming at the time, why should your judgement of the exam hold any weight whatsoever?

      --
      It's always a long day... 86400 doesn't fit into a short.
    36. Re:Language shouldn't matter! by pyite · · Score: 1

      Not to be picky, but they really don't care about messed up syntax. Granted, I think having the test on paper is stupid as well, but they do at least compensate for it, and if you read some of the comments on the graded free response examples, you'll see they mention how syntax counts for little.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    37. Re:Language shouldn't matter! by aserra · · Score: 1

      From *my* recollection of taking the AP CompSci test many years ago, it was mostly about algorithms, we just wrote them in PASCAL. They have to limit the language that the test is written in or discussed in so that there is a common response and allows for the examine-this-code-and-tell-us-what-the-result-is questions. It also saves on the number of graders that they need for the test. Besides, these are High School kids with more than enough other stuff to jam into theirs heads, let alone control raging hormones!

    38. Re:Language shouldn't matter! by Vellmont · · Score: 1

      We did all that stuff as well. Not everyone does the curriculum in the same order, and order doesn't imply importance.

      --
      AccountKiller
    39. Re:Language shouldn't matter! by Curien · · Score: 1

      Yeah, and? So you're good at programming. Are you saying that the test failed to accurately determine if you should be given a few extra semester hours for your knowledge.

      And bragging about having fifteen extra minutes on an AP test isn't all that much. Hell, bragging about a five on an AP test isn't that much either. I've taken eight AP exams and gotten seven fives and a four. A friend of mine /walked out/ after the multiple choice section of the US History AP and got a three. Now THAT's an accomplishment!

      --
      It's always a long day... 86400 doesn't fit into a short.
    40. Re:Language shouldn't matter! by diamondsw · · Score: 5, Insightful

      Quite simply, those people went into business, not teaching. Those who became professors are researchers, and as such teach the fundamentals, the algorithms, and such.

      I would wager, however, that the fundamentals they teach (good algorithm design, how OS's and programs work on a very low level, data structures, human-computer interaction) will give you the base to figure out these "day to day" things, whereas the day to day things will not help you with fundamentals. People with a rigorous computer science background learn to appreciate things like structured programming, extensibility, flexibility, planning, etc. These are what make a good software engineer for decades, as languages, platforms, etc change.

      International code is an interesting example. Everything you've mentioned is API-specific, so why should they waste their time teaching me that API when it will be dead in a few years? I can learn that from reference docs. However, they should remind me not to hard code numbers, values, formats, strings, etc, just as a good fundamental programming practice. If I do *that*, then I'm already prepared for international coding.

      So to answer your question, I'd much rather employ the person who knows how to think about all aspects of a software project, plan it up front, know how it's going to interact with its environment (and internally, with itself), and I'll buy a book for them on specific API's.

      --
      I don't know what kind of crack I was on, but I suspect it was decaf.
    41. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      But the question should be: 'Can you roll your own hash table', without google even?
      High level interfaces and languages produce limited programmers.

    42. Re:Language shouldn't matter! by Curien · · Score: 2, Funny

      So should the AP Physics exam be entirely in mathematical symbols and formulae? After all, there's no nead for a language like ENGLISH in a SCIENCE exam!

      --
      It's always a long day... 86400 doesn't fit into a short.
    43. Re:Language shouldn't matter! by Marowana · · Score: 1

      2) Describe the benefits of a hashtable Benefit 1, I love them to death.

    44. Re:Language shouldn't matter! by Brandybuck · · Score: 4, Insightful

      What about teaching people the merits of various toolkits?

      When I see a university course entitled "GTK+ versus Qt", I'll quit programming entirely and move to some remote South Pacific island.

      In other words, keep your fscking holy wars to yourself. Students take classes in order to learn valuable knowledge and skill. NOT to be indoctrinated that the Qt license is going to kill commercial development or that the OO of GTK+ is an ugly hack or whatever else the current FUD from either side is.

      --
      Don't blame me, I didn't vote for either of them!
    45. Re:Language shouldn't matter! by pjt33 · · Score: 1
      Useful to gain an insight into how they work, but virtually any development platform people work in except raw C these days will provide highly tuned and optimized hashtable implementations.
      Java's standard API doesn't include hashtables for primitives, and using wrapped doesn't give a "highly tuned and optimized" implementation. I've written my own maps to and from integers. (Yes, I know there are Jakarta libraries, but I can't use GPL stuff at work).
    46. Re:Language shouldn't matter! by thelonebanana · · Score: 1

      I took the test and I found that they were actually trying to stay away from specific language concepts and made it more relevant to universal programming by asking questions about run-time performance and logic. It just happened to be java. That's the was it was with the AB test at least, I don't know about the A test.

    47. Re:Language shouldn't matter! by Marowana · · Score: 1

      Useful to gain an insight into how they work, but virtually any development platform people work in except raw C these days will provide highly tuned and optimized hashtable implementations.

      But someone had to write it, and it's not as if Java couldn't use some more optimization.

    48. Re:Language shouldn't matter! by Curien · · Score: 1

      The language /doesn't/ matter. That's why they're able to change it twice in five years (it's an implementation detail :)

      Actually, you're complaint is mostly moot. The AP free response questions are graded according to a strict rubrik. If you did write only pseudocode, you might end up losing one or two points max per response (out of nine or so possible). If you don't mess up anywhere, you're still five material.

      In fact, IIRC, some of the (subsections of the) free response questions explicitly required you to write pseudocode. (Disclaimer: I took the A exam in 97 in Pascal and the AB exam in 99 in C++... I got fives on both, in case you were wondering.)

      --
      It's always a long day... 86400 doesn't fit into a short.
    49. Re:Language shouldn't matter! by NoodleSlayer · · Score: 1

      I took the AP test last year, and the AB test did in fact go over them. Although its more use of. Many teachers also go over how to write your own ADTs for stack, queues, etc.

      I right now am taking a Data Structures course in college that's covering many things that was covered in my HS's AP course, however the applications tend to be more rigerous, and while AP was done in C++ last year, my college is still using C for most of their fundamental programming courses.

    50. Re:Language shouldn't matter! by athakur999 · · Score: 1

      Language shouldn't matter, and especially one with as much corporate interest behind it as Java. If the test was in C# instead, the outcry would last for weeks.

      --
      "People that quote themselves in their signatures bother me" - athakur999
    51. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I'm sorry, this is Computer Science. You're looking for Software Engineering.

      I personally, in addition to being to lazy to go log-in, dropped out of a CS program because there was too much Science. Then I dropped out of the SE program because it was too fucking boring and emphemeral. (This was after leaving the community college art program I was in the middle of.)

      Eventually, I ended up creating my own major that was basically a Computer Science / Design double-major without the classes I didn't want to take. I ended up writing some of my best code for Design projects, where the design theory mattered but the software theory didn't.

      Then I took a semester off. That was about three years ago.

    52. Re:Language shouldn't matter! by Hooded+One · · Score: 1

      These are high school programming classes

      They are college-level courses, which is the whole point of the AP program, though I do agree that they're not quite at the level the grandparent expects.

    53. Re:Language shouldn't matter! by dr.badass · · Score: 1

      Personally I rather have the AP test be questions about algorithms, ideas and concepts.

      Algorithms? Ideas? Concepts?

      None of those things were in my high school AP CS classes.

      --
      Don't become a regular here -- you will become retarded.
    54. Re:Language shouldn't matter! by pyite · · Score: 1

      I should have probably added a caveat to the original post. I do not consider myself a "good" coder in comparison to others. I'm more of a networking guy even though I have been employed as a database oriented coder in the past. The point of the post was that the test don't test the right things (should have made that clearer, too). They test you more on being able to work with their stupid case study and their stupid apvector and apstring data types than your ability to analyze a problem and solve it.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    55. Re:Language shouldn't matter! by Lehk228 · · Score: 1

      You sound like you are wrapped up in the whole BS concept that all code should be made for reuse. Code should be written to accomplish a goal, If that goal is to easily included in other programs to save time of other coders (such as GTK+, etc.) then yes, make it interface well, If the goal of the program is to do accounting, write it to do the accounting functions required, and maybe build it so it can be updated easily, but for $DEITY's sake don't make it with the intent of replacing every accounting and spreadsheet app out there unless that was what whoever is paying you needs.

      A well-designed program (such that doesn't exist) wouldn't feel like it had been programmed. It would feel like it had been shaped.

      umm wtf?

      --
      Snowden and Manning are heroes.
    56. Re:Language shouldn't matter! by servognome · · Score: 1

      Computer Science is great and all, and I'm enjoying it, but I know that a lot of what I'm being taught is pretty useless.
      Welcome to the difference between science and engineering. It doesn't just apply to CS vs Software E. it applies to all subjects.
      If you want to understand the theories how reactions work go into chemistry, if you want to design a sulfuric acid plant you do chemical engineering.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
    57. Re:Language shouldn't matter! by Ryan+Amos · · Score: 1

      The reason this isn't a problem is because AP computer science never gets to these sort of problems; the test is simply not designed to cover much more than basic programming skills. It barely even discusses templates, let alone multiple inheritance. Granted, it's been a few years since I took it (it was woefully outdated in pascal then) but AP CS is supposed to cover the same stuff in that first semester CS intro class and maybe less. Anyone who actually knows how to write decent code already knows this and as such could probably make a perfect score without much if any preparation.

    58. Re:Language shouldn't matter! by damm0 · · Score: 1

      Even if the "runtime" takes care of the algorithms for you, you still have to know what they do and why you might use one or the other. It is shocking how many programmers will iterate through an array over and over when what they really need is a hashtable or...

    59. Re:Language shouldn't matter! by rockrat · · Score: 2, Insightful

      I disagree that CS courses should be teaching "practical" programming. After courses in the fundamentals, I feel confident that I can pickup the details of a new API, a new toolkit, etc. with very little trouble. In fact, without knowing about algorithmic complexity, or the fundamentals of a hash table (to use the previous poster's example), I think I would have a much harder time evaluating and understanding these new "practical" technologies. Continuing with the same example, a collection toolkit nowadays (Java, Apple's Cocoa, .NET, etc.) has many more options than just a hashtable, perhaps even multiple implementations of a hashtable collection. Without the fundamentals, it would be much harder to choose the appropriate collection (for algorithmic running time or memory use or any other constraint) than it would be to learn the API for the collection after learning the fundamentals.

      Having worked both in academia and business, I would always hire the graduate who understood the fundamentals. There's a reason why a CS degree takes most people a few years -- it takes a long time to learn the fundamentals and why you can learn Java (or insert your favorite API/toolkit here) in a couple of days.

    60. Re:Language shouldn't matter! by freeJustin · · Score: 1

      Because its very easy to explain what an AVL tree is and how the rotations should work, but the code is annoying. But I oddly I do agree, it should be much more based on that Data Strucutres and Algo class that most CS freshmen take.

    61. Re:Language shouldn't matter! by Frizzle+Fry · · Score: 1

      Then how do you grade it? These students are new to programming, and everyone's pseudocode will look different. What do you do if you're not sure what someone's pseudocode is supposed to mean. Everyone is going to use different symbols or syntax and you're going to have to figure out what they might have meant. Similarly, if you write the test questions in pseudocode, some people will make poor assumptions about how the "code" works. In practice, the whole exam being pseudocode would mean that students would end up learning "AP standard pseudocode", which is a waste of time. You might as well have them just learn a language and test them in that.

      Just because it's in a specific langauge doesn't mean that the exam is about the language. It does test general progrmaming concepts and so forth, just like you want. It does not test nit-picky details of java syntax. I admit that I'm assuming the style of the test is the same as when I took it in pascal. But even if it's not, the point remains that having a standard language for questions that require code doesn't mean the tast has to be a Java test rather than a CS test.

      --
      I'd rather be lucky than good.
    62. Re:Language shouldn't matter! by zopu · · Score: 1

      I know quite a few recent CS graduates that have moved straight into jobs that would be considered software engineering positions.

      I think that while most those CS graduates moving into SE jobs only found a small amount of their course very relevant, what is probably important is that each of them seems to tell me about a different part.

      A friend moving into a DB engineering post found that understanding DB query optimisation on a low level helped him out.

      Another friend found skills learned in a compiler-writing course came in useful, and another found some AI stuff to be handy.

      Maybe the point here is that a CS degree has to teach fundamentals, but also usually aims to give a grounding in a wide range of stuff that caters to as many students as possible.

    63. Re:Language shouldn't matter! by Switchback · · Score: 1
      don't even know if it would've been available back in the late '80s)
      Yeah, it was available. I took it back in '86 when it was in Pascal. I don't remember it being that difficult though. Of course, back then in high school I was programming on Commodore SuperPETs. Ah, I love the smell of green phosphor in the morning!
    64. Re:Language shouldn't matter! by alienw · · Score: 1, Insightful

      Your post is so horribly idiotic I can't help but reply. Just so you know:
      - this is not a troll
      - people like you are the reason many programmers get outsourced to India.

      Computer Science is great and all, and I'm enjoying it, but I know that a lot of what I'm being taught is pretty useless.

      Computer science is a SCIENCE, not a "learn-how-to-program-in-just-4-short-years" trade school course. If all you want to know is how to program, read a book or go to a trade school. Sure, you won't ever get a job that pays more than $25K. And that's about how much a crappy programmer is worth these days.

      OS Design? Fascinating, but ultimately irrelevant for 99% of coders.

      Calculus? Fascinating, but ultimately irrelevant for 99% of auto mechanics.

      Look, if you want to be a "coder", don't go into CS. You won't like it, and you will flunk. Pick up one of those nice C++ in 24 hours books, and learn it.

      If anything you shouldn't roll your own, as it'll make your code less readable, more bloated and probably slower.

      That would simply mean you are a crappy programmer who should not be employed. A good programmer should be able to easily write a good hashtable implementation if he or she needs to. In fact, that's a great job interview question.

      Besides, the proper term for a programmer that does not know how to implement a hashtable is "incompetent".

      Where are the lectures on writing internationalized code (think character encodings, flippable UI design etc).

      This is not related to CS, and is easily learned by reading an appropriate book.

      Where are the lectures on writing code with low startup overhead?

      Where are the lectures that teach you how to write word processors? What about lectures for writing code for vending machines? How about teaching students to service automotive brakes?

      A CS degree should give you enough fundamental knowledge to go read a specialized book and solve a problem by yourself. It's not supposed to teach you everything there is to know.

      What about teaching people the merits of various toolkits?

      Look, buddy, a degree is supposed to last for a lot more than 1 or 2 years. Do you think CS graduates in the 1970s learned the merits of various punchcard systems and the intricacies of programming daisy-wheel line printers? Teaching skills with a shelf life of 2 years is simply stupid.

      Version control theory?

      Are you pulling these out of your ass? READ the DOCUMENTATION and you will know how to use a version control system. If you are looking for a management perspective, get a degree in MIS or take some courses in software engineering.

      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.

      What the hell are you talking about? Why in the world should CS graduates know some random obscure stuff about some GUI toolkit (that will probably cease to exist within 5 years)? That kind of knowledge comes from reading subject-specific books and experience. It certainly should not be part of any CS cirriculum.

      You are saying that knowing obscure, specialized facts with a shelf life of 1 or 2 years is somehow more important than knowing the fundamental theory behind CS. I certainly suggest you think long and hard about where you are going with your education. This attitude will certainly not get you hired as a programmer by any serious firm. Just so you know, many of them actually ask you to talk about VM swapping algorithms and hashtable probing. They will probably not be impressed by your l33t version control skillz, and by your extensive knowledge of the merits of various toolkits if you obviously don't know any of the fundamentals.

    65. Re:Language shouldn't matter! by ResidntGeek · · Score: 1

      The Java test didn't cover anything like that - we got a couple of mind-numbingly simple recursive methods and had to tell what they did, and then a bunch of OO crap like "which speak() method is called, Dog's or Animal's?" The only interesting question was finding the bug in a SelectionSort method.

      --
      ResidntGeek
    66. Re:Language shouldn't matter! by Dr.+Bent · · Score: 2, Insightful

      The problem with this approach is it rules out an entire class of problems such as class B inherits from class A, has such and such static methods and member variables..... what is the output of this code?

      Yes, but those aren't Computer Science problems, and they shouldn't be (and aren't) on this test. At best, they're problems suited for a prep-course for a technical certification. Specifically, the AP exam (as I remember it) deals with control flow, logic and data structures. Applying those principles requires nothing more than assembly instructions.

      The point is, there's nothing on this test that is, or should be, language specific. They switch the test from one language to another to gain the added side benefit of exposing the students to the latest technology, but the concepts learned apply no matter what language (or operating system, or processor) you use.

    67. Re:Language shouldn't matter! by aled · · Score: 1
      I can't use GPL stuff at work

      As Jakarta is part of Apache all of its projects must use Apache licence, which basically let you use the code anyway you want and don't "infect" your code.

      From Apache site:

      All software produced by The Apache Software Foundation or any of its projects or subjects is licensed according to the terms of the documents listed below.
      Apache License, Version 2.0 (current)

      http://www.apache.org/licenses/LICENSE-2.0 (TXT or HTML)

      The 2.0 version of the Apache License was approved by the ASF in 2004. The goals of this license revision have been to reduce the number of frequently asked questions, to allow the license to be reusable without modification by any project (including non-ASF projects), to allow the license to be included by reference instead of listed in every file, to clarify the license on submission of contributions, to require a patent license on contributions that necessarily infringe the contributor's own patents, and to move comments regarding Apache and other inherited attribution notices to a location outside the license terms (the NOTICE file).

      The result is a license that is supposed to be compatible with other open source licenses while remaining true to the original goals of the Apache Group and supportive of collaborative development across both nonprofit and commercial organizations. The Apache Software Foundation is still trying to determine if this version of the Apache License is compatible with the GPL.

      All packages produced by the ASF are implicitly licensed under the Apache License, Version 2.0, unless otherwise explicitly stated. More developer documentation on how to apply the Apache License to your work can be found in Applying the Apache License, Version 2.0.

      Apache License, Version 1.1 (historic)

      http://www.apache.org/licenses/LICENSE-1.1

      The 1.1 version of the Apache License was approved by the ASF in 2000. The primary change from the 1.0 license is in the 'advertising clause' (section 3 of the 1.0 license); derived products are no longer required to include attribution in their advertising materials, but only in their documentation.

      Individual packages licensed under the 1.1 version may use different wording due to varying requirements for attribution or mark identification, but the binding terms were all the same.

      Apache License, Version 1.0 (historic)

      http://www.apache.org/licenses/LICENSE-1.0

      This is the original Apache License which applies only to older versions of Apache packages (such as version 1.2 of the Web server).
      --

      "I think this line is mostly filler"
    68. Re:Language shouldn't matter! by ZeldorBlat · · Score: 1

      Umm...the AP physics exam was entirely in mathematical symbols and formulae.

    69. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      ok here is my psudocode

      DO AVL TREE NOW

      there done.

    70. Re:Language shouldn't matter! by sageman · · Score: 1

      I took the AP BC C++ exam (the harder of the two C++ exams) two years ago (I'm a freshman in college right now) and the AP exam has nothing to do with Computer Science at all. It is strictly a programming exam. This makes sense, because the college credit earned is equivalent to taking an Intro to Computer Programming type class.

      "No coding, just ideas that a smart student can take to any language, whether its Java or C++ or anything else" is the opposite idea of this AP test. I think we touched upon maybe sorting algorithms and that's about it as far as concepts. The AP CS exams require you to use AP classes, (apstring, apvector, et cetera), of which the student has no idea why it works, but rather just how it works. Kind of silly, yes, but that's how its done. And considering it gives credit for like programming 101 (or CS 1005 here at WPI, which, for Computer Science majors like myself, doesn't even count towards CS credit), you can't expect much more.

      By the way, I got a 5/5 on the exam, too, so I'm the model student for the AP CS class (not bragging [too much] just saying that this is the intent of the AP CS).

      --
      --- "To iterate is human, to recurse divine." -- Robert Heller
    71. Re:Language shouldn't matter! by peanutbadr · · Score: 0

      If one teacher teaches HS kids VB, one perl, and one VB, no matter how the test is made, one of these 3 classes will have an advantage over another.

      So logically it has to be the perl kid, but since this is Slashdot I guess we already knew that.

    72. Re:Language shouldn't matter! by envelope · · Score: 1

      I took in '86 also. But we did our programming on Apple IIe's. I still remember swapping those big 5.25 floppies. Alas, the next year my school got a nice Mac lab.
      I really liked Pascal, it was my second language after BASIC. The next year in college I had to take FORTRAN, and I couldn't believe how primitive it was compared to Pascal.

      --

      appended to the end of comments you post, 120 chars
    73. Re:Language shouldn't matter! by jabbadeznuts · · Score: 0

      My school uses his series of books exclusively!

    74. Re:Language shouldn't matter! by daniel_yokomiso · · Score: 1

      Implementing your own hashtables? Useful to gain an insight into how they work

      Exactly. If people don't know how a hashtable is supposed to work they usually will write simplistic hashing functions that fail to distribute the possible values evenly over the hashtable internal array.

      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 can apply the theory and avoid mistakes instead of repeating them ten times before learning something through "work experience".

      --
      Disclaimer: If I disagree with you I'm probably trolling...
    75. Re:Language shouldn't matter! by john_is_war · · Score: 1

      This years AP physics isn't until Monday, so specify past AP physics tests. You never know what those crazy college board people will do next.

      --
      Live life to the fullest. It's not that life is short, but that you are dead for so long.
    76. Re:Language shouldn't matter! by mmatloob · · Score: 1

      Even though I am not a big fan of Java, language does matter, not for learning CS, but for taking the test. As our CS teacher at my high school said, we can learn practically everything without a language, and any language can be used, but the people grading the Free-Response section do not know every programming language, and it would take even longer to get the test results.

    77. Re:Language shouldn't matter! by john_is_war · · Score: 1

      Yeah, that had to do with class extensions and such, to make sure people knew how to call them. ANd yes, there were several O notation questions, on both multiple choice and free response.

      --
      Live life to the fullest. It's not that life is short, but that you are dead for so long.
    78. Re:Language shouldn't matter! by daniel_yokomiso · · Score: 1
      Implementation is just picky details.
      It's that sort of thinking that has led to the horribly bloated and slow apps we have today, loading applications and getting work done isn't any faster than it was in the 180mhz days


      Actually most bloated applications are written in C or C++, languages known to be used because they let the developer worry about every single implementation detail.

      If we used better languages perhaps our applications wouldn't be bloated with dozens of different linked list, binary trees, strings, date parsers, etc. implementations or loaded with roll-your-own slow and incorrect schemes for reference counting, multi-threaded synchronization, resource pooling, transaction handling, etc.

      As I wait open-office to open I wonder how many places uses arrays (or vectors FWIW) instead of correct data-structures because it's what most programmers now how to use and the language supports them as primitive (therefore they are faster, in the programmer's minds).
      --
      Disclaimer: If I disagree with you I'm probably trolling...
    79. Re:Language shouldn't matter! by Zephyern · · Score: 1

      Absolutely! With new languanges being developed every few years, learning a specific languange will do you no good. (In fact, it'll be useless next year when they come out with .NET++ or Java++ or whatever.) Concepts, however, will help you no matter what languange you use or whatever they come up with next.

      In college they sometimes had us code with a language which they developed! (An SML-type language, in which you are required to write your whole program on ONE line.) The idea behind this is that they want to teach you how to learn new languanges and show you that no matter which languange you use, the concepts are infact the same.

    80. Re:Language shouldn't matter! by batura · · Score: 1

      What the fuck are you talking about?

      Using one language gives them a common way to talk about algorithms. The whole point of using Java is that is a syntactically clean language that allows students to worry about concepts instead of harder to use syntax. Having an AP test with 5 languages would prove nothing, especially since its for HIGH SCHOOL students and is meant to replace an INTRODUCTORY language class.

      As far as your other ideas are concerned, they are way beyond the scope of what the AP test is trying to address. This point of the test is to give students the opportunity to learn some programming in high school with a computer science approach. This basically means ADTs. With ADTs comes runtime analysis, but the tradeoff measurements you suggest are better left to a dedicated algo class.

      Basically, the AP test is meant to replace the 100 level in college, not the 300+ level.

    81. Re:Language shouldn't matter! by NitsujTPU · · Score: 1

      Yeah, about ditto for my school (that I graduated from). Still, you start with programming, and the move onto the more intellectual stuff.

    82. Re:Language shouldn't matter! by plover · · Score: 1
      Oh, I thought those were COM interfaces, not scantron bubbles.

      I suppose that had something to do with my score then...

      #include <disclaimer> // that was a joke!

      --
      John
    83. Re:Language shouldn't matter! by plover · · Score: 0
      Then I'd suggest the test be taken in UML.

      Quite frankly, if you can get the concepts down in UML you've done the hard part. Making the transition from UML to code is then the job of a code generator.

      There's a real question: why don't the Intro to Comp Sci type courses teach in UML? Get kids thinking in objects, rather than struggle with hairy syntax issues.

      --
      John
    84. Re:Language shouldn't matter! by mrchaotica · · Score: 1
      why a containment-based widget toolkit is better than a positional one
      Actually, HTML taught me that before I ever took a CS Class - not that any CS class I've taken so far has tried to teach that (except as a side effect of using Java)
      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    85. Re:Language shouldn't matter! by Lugae · · Score: 1

      Agreed. Owen Astrachan's book for AP Computer Science AB was absolutely horrid.

    86. Re:Language shouldn't matter! by ldrhcp · · Score: 1

      The language isn't that important as far as the grade is concerned. You can still do well without having compilable Java syntax, as long as the key concepts such as OOP are understood.

      Re. my impressions of the exam: it was easy, just a pain in the ass because I had to sit there for an hour after finishing.

    87. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      That isn't the point of CS, it shouldn't be the point, and I hope to God it never becomes the point.


      Unfortunately you are sadly ignorant.

      I have seen CS programs at a ton of schools including Ivy Leagues and other "good" schools.

      Most of them are product and technique oriented, not math oriented. Why do you think Java is so popular? Database theory many times consists of advanced SQL.

      Sad but true.

      Look at all the shitheads on Slashdot that are Comp Sci majors that think they are there to learn about programming with the latest languages/libraries.

    88. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0


      Not sure if This Fool still has anything to do with AP CS, but his AP CS book was probably the worst computer related book I've ever read (littered with errors, for starters).



      Read the last sentence of that page?
      I don't get it. I mean, WTF.

    89. Re:Language shouldn't matter! by bluGill · · Score: 1

      First of all, most of what you are being taught is not worthless. However it may take years to realize what is useful. Worse, what is useful to you might not be useful to me, just because we don't do the same job.

      Sure your language provides a hash table. Until you get into the real world and discover that some do not for various reasons. Or the hash table is good in general, but it fails miserably for a specific application so you end up writing your own anyway. Or in my case I just wrote a simple cache algorithm for work, pure introduction to algorithms work, but the existing ones didn't exactly meet one critical requirement so it was roll my own time.

      I went several years without needing big O notation, but suddenly it became a big deal. Now that the algorithm works I likely won't think about that stuff again for years.

    90. Re:Language shouldn't matter! by jbrocklin · · Score: 1

      Agreed! Here Here! And all other sorts of props! I am preparing to enter my senior year in a CS degree program, and have trouble convincing my classmates that the fact we've taken less math than all the other engineering majors is a bad thing. I wish more schools would focus the CS degree on the how & why things in programs work, and leave the coding practice (a skill in my opinion, not a science) to the software engineering type degrees. Now before someone screams blasphemer - I think that CS people should know coding like the back of their hand, even though it's not the focus of the major. Code is simply the tool to perform the task.

      I'm gonna have to go buy Knuth's book now, after realizing that I don't own a copy....

    91. Re:Language shouldn't matter! by CTachyon · · Score: 1

      The entire point of the AP tests is that they prove you're knowledgable enough to skip a few low-level classes. You didn't have the knowledge at the time, so you (deservedly) failed.

      --
      Range Voting: preference intensity matters
    92. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      Someone should mod that parent up. I enjoy all math (and specifically computer science). I can read Knuth and analyze algorithms quite well, yet (suprisingly) I perform poorly in math (go ahead and snicker). The result is that I tend to deal with what I consider in an ad hoc fashion, in which I learn enough math to address the problem at hand comfortably. I am quite many Slashdotters (and empirical thinkers at large) could list a number of reasons why mine is a terrible approach; many of which would be valid.
      Anyway, I am at the point in which I can't major CS because I lack much mathematical background, and refuse to major in CIS (ephemeral) programming because I can plainly see how short-sighted that cirriculum is.

      Finally, how does all this relate to CS AP exam. I for one anonymous coward believe that the AP exam suffering the same short-sightedness. Choosing C++ or Java just because it's the latest thing is a bad idea. Frankly object-orientation and the extensive mechanisms it provides a basic understanding of how to write a simmple imperative "uniprocessing" program well. I you doubt any of this, see Dijkstra (EWD316). His brief discussion of why multithreading may (may not) be a good thing while somewhat dated applies to objects specificall their use in teaching objects in introductory and early CS.

    93. Re:Language shouldn't matter! by ferroscience · · Score: 1

      I took it last year in C++ and this year in Java again (the higher level test). Considering I never really took the effort to learn Java, I'd say the test is pretty language independent. The syntax for the two are nearly identical and the only place where it matters is in the Java standard classes, which have their syntax included in the test. So anyone who knows what a for loop is should do just fine if they have the time to flip through the reference handout they give you. Most of the material in the AB test was on data structure and method effiency, rather than implementation.

    94. Re:Language shouldn't matter! by brsmith4 · · Score: 1

      Because I am a whole lot better now at coding and remember the test like I took it yesterday. It is not a good metric in determining programming skill. No written programming tests are.

    95. Re:Language shouldn't matter! by brsmith4 · · Score: 1

      I completely agree. I do not blame the test for my failure or lack of knowledge, yet I do not believe that any written test is a good measure of ability, except a good measure of how well you can take a test.

    96. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I got a seven, and I slept for about 25 minutes in the middle.

    97. Re:Language shouldn't matter! by Scaebor · · Score: 1

      the idea (or at least the most common result) of the AP tests are to give one college credit for knowledge one has gained prior to attending such an institution. Therefore, they would try to replicate the knowledge set most commonly related in college, most notably the coding portion. Intro comp sci courses involve coding, so therefore the AP's do as well. Ideally just knowledge of the basic concepts would be worthwhile, but the AP's are bound by what the colleges teach, so they must cover the java

      --
      "Hey brother Christian with your high and mighty errand / your actions speak so loud I can't hear a word you're saying"
    98. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      Actually, I took this back in high school in 1987. Yes, it was in Pascal. There was multiple choice and a write code section. It covered all of the usual data structure stuff (linked-list, trees, pointers, pre/in/post-fix traversal). There was no A or AB part, just the full exam which looks like the AB of today.

      Now that I think about it, my H.S. was pretty advanced. In order to take it you had to have gone through 2 years of 'Computer Math' which covered Applesoft BASIC, and Fortran IV (on a Z80 card in the Apple).

      The first year was the usual variables, loops, arrays of BASIC, with some Fortran at the end.

      The second year was more BASIC with files (sequential and random access). More Fortran and a little Pascal.

      The third year was all Pascal and data structures. I don't recall if we covered O notation or not.

    99. 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...

    100. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I just took the test, and some of the free response questions did in fact resemble those you suggested. PseudoCode would be very hard to grade, though, unless everyone coded the exact same way, which would mean learning the syntax for that... and we are back where we started. The APCS test is really not a language test, it just uses a single language every year for consistency.

    101. Re:Language shouldn't matter! by Xenographic · · Score: 1

      You know, you need both.

      It's true--CS courses encourage terrible coding practices (never use libraries, using features because you're "supposed to," and other unmaintainable and insane practices).

      On the other hand, there are plenty of good coders who don't know what the hell they're doing. They don't understand when or how to use simple data structures like linked lists, hash tables, etc. and can't do anything unless there's a library call for it.

      Now then, why is this important? True, CS types may go into research, but half of us are out looking for some type of coding job. The thing of it is, I'm glad to know all those algorithms, but if I didn't know how to code, none of that would do me any good. And so CS degrees without coding skills are useless to most of us, unless we only want to pursue research.

      And yes, I do know who Knuth is. I suspect more than you might think would have heard of him, at least, if they had any idea what the KMP in the KMP string matching algorithm stood for...

    102. 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
    103. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      "On the other hand, there are plenty of good coders who don't know what the hell they're doing. They don't understand when or how to use simple data structures like linked lists, hash tables, etc. and can't do anything unless there's a library call for it." ... err, that statement is nonsensical. If someone lacks such basic understanding then they are, by definition, anything BUT good coders.

    104. Re:Language shouldn't matter! by the+chao+goes+mu · · Score: 1

      Only if you are using an object oriented language. UML->C or UML->assembly is a lot more work than you suggest. (Yes, some of us still use non-OO languages)

      --
      Boys from the City. Not yet caught by the Whirlwind of Progress. Feed soda pop to the thirsty pigs.
    105. Re:Language shouldn't matter! by sfjoe · · Score: 1

      If you can't see the value of OS design and learning how hash tables work, stop, do not pass go, do not collect your diploma, it's utterly wasted on you.

      Well, I guess my degree was wasted on me as well. Any course that requires you to regurgitate rote memorization (Essay Question #1: explain how a hashtable works), is pointless.
      Now, give me a course that compares and contrasts various data structures and how to determine the most appropriate one for a given situation and you're teaching something.
      A monkey woth a stick can memorize hashtable implementatons

      --
      It's simple: I demand prosecution for torture.
    106. Re:Language shouldn't matter! by Lehk228 · · Score: 1

      I never said C(++) was faster than $LANGUAGE in fact I am always one of the first to object when people trash Java as slow. What is slow is when programmers are lazy. I referred to TI-86 Basic because often there are a few ways to get a task done, but one way significantly faster. On higher end machines the difference is more subtle, slow the machine by a fraction of a second, small enough that a single module isn't slower due to the poor design, but the whle system is alot slower.

      --
      Snowden and Manning are heroes.
    107. Re:Language shouldn't matter! by JeyKottalam · · Score: 1

      I hope you're just trolling, because then the entire calculus course should be the first and second fundamental theorems of calculus.

      Those principles are very important, but what good are they if you don't understand how or why? Similarly, these kids have never programmed before, so they should be introduced to programming. Once they have an idea of what programming is, you can begin to teach them theory and such.

      I sincerely doubt that someone who has never programmed would understand the motivation for an AVL tree or a hash table.

    108. 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.

    109. Re:Language shouldn't matter! by Austerity+Empowers · · Score: 1

      I hope you're kidding and your post should have been mod'ed as funny ;)

      I cannot think of a single job I may have that you would be precluded from because you understand VM swapping algorithms. In fact I think you'd be able to pick up both positional AND containment based widget toolkits, and explain to me exactly why one or the other might be better for any application I ask you to write.

      The roll-your-own vs. off the shelf is rarely an engineering problem. Usually it comes down to the classic time vs. money scenario. Depending on which is in least supply you may have to do either one, and you quite often don't get to make that decision. Some brat with an MBA or worse some old ex-"engineer" (who still thinks he's "in touch", and "technical") is gonna make that decision for you. As you can tell, you may learn to hate him for it, but it'll happen.

      Of course I hope you'd be able to do more than recite VM swapping algorithms to me. I don't want people who only solve solved problems. I expect, perhaps even in an interview, to present you with a VM swapping-like problem and have you tell me either a) a good/optimal solution or b) that you understand the problem, you have a couple solutions that may or may not be ideal, and explain to me the pro's and con's of each. if you can do that, I trust you'll learn new toolkits in a couple days. O'Reilley makes a fortune on books for that purpose...

      If the point was that you understand VM swapping algorithms but don't know how to write good code, then I understand your dilemma. The good news is that prospective employers at good balanced (age wise) companies, won't expect it of you. You can't learn it at school; your professors can't teach it because most of them don't know either simply because they don't write code on a daily basis. That's not what they do, and they don't understand what you want to do (or think it's trivial, which is as equally wrong as your own bombastic statements).

    110. Re:Language shouldn't matter! by Trillan · · Score: 1

      I agree, but it is not what we usually see. Over the years, we've hired maybe two people who actually belong. The rest took the courses and managed to get high grades, but aren't suited for work in the industry.

      It is absolutely astonishing how few people can make the jump to programming on any platform, language and API. It is not that difficult if you understand what you're doing and are willing to -- and I guess this is the kicker -- learn new things, even once leaving school. How did we manage to get an education system that outputs only half-trained monkeys?

    111. Re:Language shouldn't matter! by Visaris · · Score: 1
      I recently helped a professor grade the final exams for his operating system class. I was seeing graduate students turn in code that is totally worthless. These were people who would be graduating soon and didn't understand that this does nothing usefull:
      void foo(char *s)
      {
      s = strdup("Pony!\n");
      }
      On the other hand, the same student who wrote code similar to the above could come up with some wonderfully simple and elegent solutions for thread synchronization. While most of the class turned in pages of bloated code, he turned in a single page that was many times faster. CS is not a lesson on how to write C, C++, or Java. If you want to learn how to do that, download a free tutorial online. It is just as good, and you'll save a fortune. CS is about making computers do what you want them to do in the fastest or most compact way possible.

      Also, CS people know how the computer actually works. While the average coder might write:
      void toggle(bool *b)
      {
      if(*b) *b = FALSE;
      else *b = TRUE;
      }
      A CS person would be much more likely to write somthing like:
      void toggle(bool *b)
      {
      *b ^= 1;
      }
      This is not because the average coder doesn't know much math (well...), but because the average coder doesn't understand the significant impact that a single conditional branch has on code. And no, compilers do not optimize well enough to make up for this lack of understanding...

      I'm sick and tired of people who don't want to learn filling up my classes. You should have heard the moans when the students in my class had to write their own thread library! It's too hard! I don't understand! BAH! Read the fucking man page for setjmp() and longjmp(), read a couple of header files so you know how to modify a jmp_buf to refer to a new stack, and shut the hell up! :mumbles: Rant over..
      --

      I am a viral sig. Please help me spread.
    112. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      You can use things without understanding them.

      Many coders do that all the time...

    113. Re:Language shouldn't matter! by qtothemax · · Score: 1

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

      Would you hire an engineer with no knowledge of physics to build a bridge? That would be even more insane. Its really a bad analogy though, as a bridge is a one shot thing, it either stands, or crumbles. If the program i'm developing coredumps, I can fix it, no harm done. Even if you are never going to write your own hash table, its helpful to know how it works when you are using one.

    114. Re:Language shouldn't matter! by IamTheRealMike · · Score: 1
      Hmm, I'd say both those approaches are wrong. What's so bad about

      void toggle(bool *b) {
      *b = !(*b);
      }
      The extra parens around *b probably aren't needed, though. It's certainly clearer than ^= would be. Your way may be slightly faster but I'd wager not fast enough to make up for the less clear (IMHO) code.

      This sort of demonstrates what I was talking about w.r.t reimplementing hashtables. I've seen some standard libraries that use things like the gcc __builtin_expect construct to give CPU branch prediction hints: no matter how smart you might be, how many people will optimize their own hashtables to that sort of extent?

      Well, I got a lot of (possibly deserved) flaming for that post :) I never said theory was useless though, just that - like many university degrees - they seem to equip you poorly for the real world. Note I said poorly, not that they don't equip you at all.

      Mind you, I have a somewhat vocational bent by nature I guess. I'm the sort of person who can't really see the point of studying, say, History for 3 years (apart from to just spend time maturing at university of course).

      On the science vs engineering thing, I'd normally agree but it seems that at least in England virtually all universities conflate Software Engineering and CompSci to such a high level that there's little reason to choose one over the other. Worse, most employers apparently see SE as a "softer" subject despite in many courses it being made up of exactly the same modules +/- a few, so the end result is that a ton of people do CS and virtually none do software engineering. It works in reverse too - one of the first modules we did in my CS course was "Software Engineering" which dealt with processes, evaluation cycles etc.

      That's definitely a confused state of affairs, but realistically there's a huge job market for software engineers and a very small one for computer scientists so it's not surprising that the courses got merged over time.

    115. Re:Language shouldn't matter! by MikeHunt69 · · Score: 1

      I live on a remote South Pacific island you insensitive clod!

    116. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      4MHz days. Think overlays.

    117. Re:Language shouldn't matter! by fungai · · Score: 1

      >which I feel is much more valuable than 5+ yrs coding in x-language which might dissapear in 5 years

      like c#?

    118. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I took the AB test for Pascal back in '89. I still remember one of the programs that we had to write for the B section... Write a program to perform an inorder traversal of a tree. Use pointer variables and a recursive programming structure.

    119. Re:Language shouldn't matter! by Anonymous Coward · · Score: 0

      I took it in I think in 99 and I agree that it does not necessarily have a huge amount to do with how well a software engineer does, but I do think that it is very indicative of the type of tests that could be had in further education. I go to a school that is very theory based and they love very academic oriented stuff. Honestly, if you didn't learn how to do matrix multiplication and object oriented concepts in ap cs, which I did not either, it was purely because AP computer science classes are not designed to be thorough. I was puzzled at the idea of tree recursion which was barely taught in ap cs, but that was the introductory class that I first took in college. From there, it has only gotten much much more hard and more academic, so, in short the test has a lot to do with computer science as a field of study althogh not so much as a hobby. If you like it anyway, wait until college to take a class and decide that you are more an applied math person. Either way, although, it is not a great indicator of cs, it is a good indicator of a person's success in cs.

    120. Re:Language shouldn't matter! by plover · · Score: 1
      Because it's a test for Computer Science, and not a test for "assembler coders".

      People above were whining that the language shouldn't matter. Well, UML is an implementation-neutral language, which would solve their complaints. Sure, it relies on OO features, but why not? They're testing OO concepts. And since that's where both acadamia and industry are leading today's students, why not teach it to them first?

      --
      John
    121. Re:Language shouldn't matter! by chialea · · Score: 1

      Despite it having the highest failure rate of any AP exam (at least 7 years ago when I took it), the CA AB AP exam is pretty much a joke if you have a basic understanding of data structures. However, this is the idea -- if you do well on this, then you don't need to take data structures as an undergrad (and I didn't).

      Nearly my entire class finished the multiple choice part in ~30 minutes, and the programming part in ~20, IIRC, and since they made us spend the rest of the time there, we spent the rest of it waving at each other and pissing off the proctors.It's an easy test, probably with a pretty strict division into two bell-curves: has a clue and has no clue.

      Lea

    122. Re:Language shouldn't matter! by heck · · Score: 1
      > OS Design? Fascinating, but ultimately irrelevant for 99% of coders

      Bullshit.

      (1) If you're a GOOD programmer than you know how various OS's are going to deal with your program; what the quirks of the architecture are; and how to deal with said quirks. If you don't understand what your program is running ON - truly understand - how the hell are you going to design something for it. And I AM a Java programmer (mostly for the Web). In my case, I have to know the quirks of BEA versus IBM versus Tomcat, what the differences are on Windows versus Linux versus Sun OS, and how Oracle SQL is different than MSSQL is different than DB2 SQL. Yeah, yeah, standards and Java are supposed to make all of that irrelevant, and the abstraction layer is supposed to make all of that go away. But it doesn't make it go away, although it makes it a lot easier to deal with.

      (2) The purpose of college is to teach you to solve problems. Teaching about proper OS design is not so much about teaching you about OS's as much as it is about teaching you HOW to design and code. If you thought it was about OS's then you weren't learning the correct thing.

      I'm a MechE/CS. One of the courses I took was "Jet Engine design". Brillant professor. He'd worked for Pratt and for GE. Still consulted for them regularly. I also co-oped at GE. What my prof taught in the course barely scratched the surface of engine design. But the problem solving techniques and the fact I'd seen the basics helped me a lot.

      > Where are the lectures on writing code with low startup overhead? What about
      > teaching people the merits of various toolkits? Accessibility? Version control theory?

      First of all, the low startup overhead is a business management problem. Admittedly, any engineer does have to factor cost into their decision.

      But you're still missing the point of college. It is NOT about teaching you EVERTHING. It is about teaching you enough so that you feel comfortable learning on your own.

      Let's face facts - things are changing too fast for colleges to keep up on the technology (the version control or toolkit of today is usually gone in 5 years) So colleges concentrate on teaching you about critical thinking - because that is an ability you always need.

      You also forgot the biggest one - in my opinion - which is effective business writing skills. I'm biased here because I'm actually MechE/CS - and before I could get my MechE degree I had to pass Senior Labs. Senior Labs was all about writing a different report - in a different style (one page memo; one page abstract; 10 page business case; 40 page full report; etc.) - every week. It was 6 credits - when most courses in the college were 3, and the rare course was 4.

      > 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 guy who knows he's been taught HOW to think, and HOW to learn stuff on his own.

      As I said - I'm a Mechanical Engineer as well as a CS major. Early on the MechE professors make it damn clear that there is no way in hell they can teach you everything about being a MechE. We're talking a field of study that has research going back hundreds of years (I have steam table books that my great-grandfather wrote when he was a MechE professor) But college CAN teach you the underlying theory and how to learn on your own how to solve problems, and give you the basic building blocks which everything is built on.

      Non scholae sed vitae discimus. -Seneca
      "Not for school but for life we learn."

    123. Re:Language shouldn't matter! by CF_Obi-Wan · · Score: 1

      "The fact that Computer Science is a MATHEMATICAL SCIENCE seems to elude most people who'd rather worry about how good of programmers they are than about knowing how the hell things work." I must agree with the above statement. It takes good logic skills to program effectively. Pretty much the stuff you learn in HS Algebra and Algebra II. Programming is about taking a problem, and providing the solution. You know what the end result should be, you just need to get there. In my various years, I've seen two types of programmers, 1) those that know and 2) those that understand. Those that can, do; those that can't, do helpdesk. You gain knowledge from the classroom, pretty much the basics. You learn how things work, and most of all, how to manipulate code, rather than developing your own solution. Understanding comes beyond the classroom. Hundreds of hours of reading articles, books, and then applying what you learned.

    124. Re:Language shouldn't matter! by o.astrachan · · Score: 1

      Just a note that I'm the fool. If the book was littered with errors, I'd be happy to have them pointed out to me, in a public forum of course, with fisticuffs as necessary.

      I didn't intend my book to be an AP book, but a computer SCIENCE book, with attributions to DONALD KNUTH in many places, as well as superfluous CAPITAL letters when necessary to emphasize key points.

    125. Re:Language shouldn't matter! by Uber+Banker · · Score: 1

      It's an easy test, probably with a pretty strict division into two bell-curves...

      They're not bell curves, they're subliminal boobies!

    126. Re:Language shouldn't matter! by tigerc · · Score: 2, Interesting

      Here's an example of a problem:

      Which statement about parameters is false?

      (A) The scope of parameters is the method in which they are defined.
      (B) Static methods have no implicit paramater this.
      (C) Two overloaded methods in the same class must have paramters with different names.
      (D) All parameters in Java are passed by value.
      (E) Two different constructors in a given class can have the same number of parameters.

      The answer is C. I'll take that. But look closely at answer D. For objects, references are passed, not values. However, the AP exlpanation was, "Choice D is true even for object parameters: their references are passed by value."

      How much more asinine can you be?

    127. Re:Language shouldn't matter! by macosxaddict · · Score: 1

      The AP explanation is exactly right. The value of an object reference is the reference itself. i.e. when you evaluate the reference, it's a no-op; you just get the reference back.

    128. Re:Language shouldn't matter! by cerberusss · · Score: 1
      Consequently, I feel like I can pick up new languages rather easily

      Of course you can. But getting used to a syntax is NOT the same as real-life project experience where you get a hang of the do's-and-don'ts, which APIs you should really use, which ones you shouldn't, the use of exceptions et cetera.

      It's not about the syntax, it's about whether you can code good and fast -- and for that, you need familiarity with the components that are available.

      --
      8 of 13 people found this answer helpful. Did you?
    129. Re:Language shouldn't matter! by CountBrass · · Score: 1

      Of course there are. You could describe them as members of the class itself, as a Singleton or as a meta-class. None of those concepts are language dependent.

      --
      Bad analogies are like waxing a monkey with a rainbow.
    130. Re:Language shouldn't matter! by quelrods · · Score: 1

      Data structures are indeed in the ap test. (I took the c++ variant some years back.) The university I ended up at gave credit for 3 semesters if you got a 5 or 2 semesters for a 4 on the cs ab test...for the cs a test, which didn't cover data structures, you got credit for 1 semester with a 4 or better.

      --
      :(){ :|:&};:
  8. Java? by CowboyShit · · Score: 2, Interesting

    Don't you mean Visual Java?

    1. Re:Java? by hdd · · Score: 1

      No, wea are talking about real java here. My school was going to get visual java on every computer for free, then microsoft backed other for some reason (lawsuit?) Now we are using the java package from sun, on top of that we use bluej.

      --
      This Sig is removed due to factual inaccuracy
  9. 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.

    1. Re:easy by Incoherent07 · · Score: 4, Insightful

      Believe me, I took the test last year (the second level test), and it was a joke and a half. I finished each section with about half the time to spare. Realize that the AP subset of C++ ignored most of the features that aren't in Java... the case study might as well have been written in Java.

      And, as mentioned elsewhere in the thread probably, the AP CS exam is not really about concepts. Yes, they taught me a little bit of OOP design, but in the end it's based mostly on algorithms and how to use the language. I agree that this should not be the emphasis, but for better or worse, it's a "how to program" class, not an introductory CS class per se.

      --
      This is my sig. There are many others like it, but this one is mine.
    2. Re:easy by Anonymous Coward · · Score: 0

      Java-- sucks. Java++ rules!

    3. Re:easy by Otik2 · · Score: 1

      Yeah, teachers do play a big part. People at my school always get ridiculously low scores on this test because of our teacher. I mean, he apprently didn't even teach the marine biology case study this year. Though I think it also has something to do with the fact that none of the kids are motivated at all....

      Actually, my main problem when I took it was with the free response. I had to rewrite my code and insert stuff so much I bet it was unreadable. It's too bad you have to write it all by hand and can't use computers and a compiler like you normally do. Though of course if they let you do that, there'd be a lot of cheating.

    4. Re:easy by Yodason · · Score: 1

      I thought the test was quite evil, especially compared to the C++ test. I got a 5 on the last one, and am hoping for a 5 on this one, however, the class as a whole is rediculous. The exam is how well can you read language quirks, not how well can you program, do algorithms, etc. I thought it was bad last year, but this year with switching to java the number of questions purely based on language quirks are large.

    5. Re:easy by edwdig · · Score: 1

      I was planning on taking the AP CS exam in 1999, the first year it was offered in C++. I looked at the prep materials they sent, and realized the test was a complete joke and I wouldn't have to study much at all for it.

      It doesn't use STL, but rather a set of AP classes which are really a subset of the STL classes. They strip the classes down to the minimum necessary to get the point of the class, and have you use that. You only need a minimal knowledge of C++ to handle it.

      The content is all very basic. Really all it covered was the material found in the first month or so of a college level Data Structures course.

      I checked with the colleges I was looking at going to - none of them gave credit for taking the CS AP test. I asked a CS professor about it at an open house, and he confirmed what I thought - they didn't give credit for the test because it was too simple.

    6. Re:easy by Captain+Segfault · · Score: 1

      I found it somewhat nontrivial when I took it two years ago, but that was largely because I stayed up until 3:30 or so the night before installing FreeBSD on my machine, so I couldn't quite think clearly.

    7. Re:easy by Rallion · · Score: 1

      I'm glad it was in Java-- C++ would have been a lot harder.

      No. You should have seen it last year, it was a joke. I was afraid that it was so easy that my stupid mistakes (which I always make) would be enough to keep me from getting a 5. I did get the 5, but I bet it was close.

    8. Re:easy by Marowana · · Score: 1

      Pretty much everyone that took the test at our school(all of 16 students) finished the free response with almost a full hour left.

    9. Re:easy by Anonymous Coward · · Score: 0

      Teachers play a large part in every AP test. I took the Calculus AP test and my entire class was ready to leave a good hour before it was done and almost everyone got 5's. Many of us believing the test was the easiest math test they have ever taken.

      I took th C++ test last year, and I too had a teacher who did not teach the marine biology case study (mainly because he didn't have a working version). I still managed to get a 4 but this was because I was motivated. Also, the tests although they do test your coding some they are not completely worried about your coding. You can leave the small things off of your coding and still do well. This is especially true during the free response when you are allowed to use the appendices. I think the primary goal of this part of the test is to see if you understand the methods to do stuff.

    10. Re:easy by Hooded+One · · Score: 1

      I took the test last year. Most people at my school do the class Senior year if they do it at all, but I made sure to get in before the switch to Java, and I'm glad I did. Besides C++ still being more practical for the majority of applications, the case study wasn't so ridiculously bloated with different classes to memorize.

      The test was just as uncomplicated. The entire course is at a level that the only major difference between languages is syntax.

    11. Re:easy by The+Human+Cow · · Score: 1

      The exam was very easy. I spent more time laughing at one of the free response questions than I did actually coding it.
      Of course, now that I've said that, I'll probably end up with a 2.

      *knocks on wood*

      --
      The Human Cow - bringing you scrumtrelescence since 1995
    12. Re:easy by Anonymous Coward · · Score: 0

      all of 16 students

      Dude, my moderate-size school only had 4 students in the class.

      Why? Because it wasn't weighted.

      Yep, at my school, being on the newspaper staff gets weighted credit, but AP Computer Science doesn't.

    13. Re:easy by Anonymous Coward · · Score: 0

      I made sure to get in before the switch to Java

      I with I had done this, but for a different reason. My school system decided to cut our switch to Java budget over the summer without telling anyone. (Apparently, expanding the parking lot was a priority.) So we got to take an AP class with no AP test. Which convienently gave them the right to take away our weighted credit, too.

    14. Re:easy by liphel · · Score: 1

      I tend to agree here. I took the first level C++ test last year and aced it, got a 5. I took the java 2nd level exam on tuesday and it was much more difficult, studying about the same amount. Granted, my teacher didn't teach me anything (either year), and I was sick. The 2nd year data types just took more practice to get used to than I had.

    15. Re:easy by Anonymous Coward · · Score: 0

      I couldn't agree more. for most of the repsonse questions i kept asking myself-- are they really asking me this? it was almost like they were too easy-- i was expecting to be writing for a long time, but most of them only took a few minutes, at most.

    16. Re:easy by mondaypickle · · Score: 1

      I took the AP class, and my teacher was a tard, I know more than she does about java and when kids ask her questions she asks the other students, it's pathetic. Decided not to take the test so I don't get screwed over next year.

    17. Re:easy by quantum+bit · · Score: 1
      It doesn't use STL, but rather a set of AP classes which are really a subset of the STL classes. They strip the classes down to the minimum necessary to get the point of the class, and have you use that. You only need a minimal knowledge of C++ to handle it.
      Ahhhh, gaypstring and gaypvector. About midway through the year I finally got fed up with them and replaced those classes with my own code. It had the same interface but was about a hundred times more efficient... I don't know if everybody was using the same implementation of those or not, but the one that we were given even had a bug in apstring that cropped up a couple times. Thought I was going crazy until I let the debugger trace into the library itself...
      I looked at the prep materials they sent, and realized the test was a complete joke and I wouldn't have to study much at all for it.
      Yeah, don't worry. You didn't miss much.

      In the class itself we had to use an ancient version of BC++ for DOS for the graphics stuff -- the supplied libraries accessed the VGA framebuffer directly. For most of the stuff though, it was Borland C++ for Windows, the *shudder* Win16 version. I remember having to explain to our study group what a memory model was and why it sometimes mattered for our class even though it was antiquated technology to the rest of the world.

      The course material itself was SOOOOOO boring -- and badly written -- it was an obvious quick translation from Pascal. They didn't even introduce classes as something that could be used until over halfway through it (though we all used them anyway). Between assignments I did stuff like re-writing the graphics library so it would work in the Windows version too, and write a multithreading library since DOS didn't have one and trying to thunk the Win32 thread functions didn't work quite right... Though it wasn't as bad as it could have been since my friends and I got together and wrote a NetBEUI (that's what they were running in the lab, ugh) based chat program.

      Still, all around it was a good senior-year blowoff class. :)
    18. Re:easy by ferroscience · · Score: 1

      I've took the A exam in C++ last year and the AB exam in Java this year. There are huge differences between the two. This is probably because one is the more advanced test, but this years test was way more heavily concept-based. Nearly everything was on data structures and method efficiency where as last year was very basic coding techniques. The Java test was also way more heavily object oriented than the C++ test. The C++ test's college board created AP classes were replaced with standard Java classes in this years test. Much better if you ask me, especially with the handy orange booklet they give you that outlines the methods and classes that are tested.

    19. Re:easy by Kaboom13 · · Score: 1

      Apstring was horrible. Several of the member functions were broken beyond repair, and the whole thing is a waste of time anyway (most modern compilers include the libraries for far superior implementations of the same thing). The Questions on the test required you used certain ap strings as your input, I quickly converted all of them to pointers using the supplied member function that I knew for a fact didn't work. It kind of makes me chuckle to think I got a 5 writing code I know for a fact will never work. A friend covered the last two written problems with smiley faces and got a 3. Here in the Florida a 5 gets you a credit for the "Introduction to Programming" course. The course is not actually required (You can go straight to Intermediate Programming if you desire, whether or not you did the intro course). I have a ton of credits from my AP scores, the only ones worthwhile are the English and Calculus tests.

    20. Re:easy by redwyrm · · Score: 1

      Usually when College Board phases something out, they make the transition gradual so that the instructors can better prepare the students. I never took this test, but I'm guessing that in the last year of C++, they were avoiding operator overloading and other C++-specific constructs to ease the transition to Java.

  10. Rules by Anonymous Coward · · Score: 5, Funny

    REMINDER

    It is against the College Board rules to discuss the multiple choice problems EVER in your life, and you must wait 2 days after the date of the test to discuss the free response questions. Failure to adhere to CollegeBoard rules may result in invalidation of your scores, loss of privilege to take future AP exams, and legal action may be taken against you. (Those who take APs should be familiar with this statement)

    1. 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.

    2. Re:Rules by Anonymous Coward · · Score: 1, Funny

      REMINDER

      It is against the College Board rules to discuss the multiple choice problems EVER in your life, and you must wait 2 days after the date of the test to discuss the free response questions. Failure to adhere to CollegeBoard rules may result in invalidation of your scores, loss of privilege to take future AP exams, and legal action may be taken against you. (Those who take APs should be familiar with this statement)


      The poster's not joking. The college board wants their copyright upheld so that they can sell the tests later without worrying much about leaks.

    3. 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.
    4. 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.

    5. Re:Rules by Lehk228 · · Score: 1

      you mean your class didn't talk about it right after the test? we didn't discuss the details, mostly joking about parts, I wish i had access to the AP Fish Class, I SO wanted to include a predator class that ate other fish and got bigger.

      --
      Snowden and Manning are heroes.
    6. Re:Rules by Anonymous Coward · · Score: 0

      mod down! TUBGIRL!

      Slashdot requires you to wait 20 seconds between hitting 'reply' and submitting a comment.

      It's been 3 seconds since you hit 'reply'!

    7. Re:Rules by pclminion · · Score: 4, Insightful
      Multiple choice questions are resued so that the College Board can compare how well people did year-to-year.

      Which is a pointless endeavor, since people will share the test answers. Ever notice what happened the last time you told a teenager not to do something? Did they do what you told them? Wake up, man. Sitting around "hoping" that the kids won't talk is fucking delusional.

      The playing field should be level.

      Wow. If they manage to pull off a "level" playing field, they'll be the first to ever do so with a test like this. Face it, all tests are biased, and having students discussing the answers is just another form of bias. You plan for this, and deal with it.

      Students who tried to cheat this way HAVE had legal action persued against them

      First, if you consider the free discussion of test questions among students outside of the test-taking environment to be cheating, you have a truly draconian take on things. Second, unless the kids signed some kind of legally binding NDA, there is no law which could allow the College Board to prosecute them for any offense at all -- haven't you heard of the fucking First Amendment? 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. And aren't some of these kids under 18 anyway? An NDA can't apply to them, since any contract they enter into is null and void.

      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.

    8. Re:Rules by taernim · · Score: 1

      That must be a new rule... or perhaps it is only for the programming tests. When I took my other AP exams, we had previous AP exams (usually 3+ years old) to use as study guides for tests and for the exams themselves.

      --
      "PC Load Letter? What the $@#% does that mean?!"
    9. Re:Rules by Yodason · · Score: 1

      they release the old ap every 5 years... (atleast for calc, physics, etc) as thats when they create new multiple choice.

    10. Re:Rules by joshuao3 · · Score: 1

      Ummm.... who's concerned about rules? Certainly not the student who participated in the test. As a minor, they cannot enter into legally binding contracts. Did the student sign an agreement saying that they'd bide by the rules? Even if they did, it wouldn't be enforcable if the student is under 18. If the student paid to take the test (I don't recall if there's a cost) then they've paid to get a result.

      Am I wrong?

      --
      Monitor bandwidth usage on IIS6 in real-time: http://www.waetech.com/services/iisbm/
    11. Re:Rules by kraiger · · Score: 1

      Actually, we did have to sign a form stating we wouldn't leak anything on the test at all, etc. etc. :D

    12. Re:Rules by ChaosDiscord · · Score: 1
      Funny? He was being serious, people.

      Indeed. And it's still funny. Much like the clickthough warnings "Read this entire document." The reality is that almost no one cares. You won't stop the minor offenses (people just chatting about it without intent to cheat) because it's pervasive. Those engaged in the minor offenses don't view themselves as offenders because they see no harm. And in practice there is no harm. As for those intending to cheat, well, if you're intending to cheat what incentive do you have to follow the other rules.

      Sure, it's serious. So's the FBI warning on DVDs and the corporate disclaimers stuck on the bottom of email. They're still funny. If this warning is the key to preserving the fairness of their tests it's not only funny, it's pathetic.

    13. Re:Rules by Anonymous Coward · · Score: 0

      Indeed. Its obvious that the "legal action" is a scare tatctic to anyones who read them. People under 18 can't legally sign NDAS.... of course, they can cancel you scores(and tell your college why.. thus almost guarenteeing you get a letter recinding admittance) if you do something stupid, but you can not copyright the answer to a question. You may be able to copyright a TEST as a whole, but you can not individually ban people from discussing questions under the broad spectrum of "copyright".

    14. Re:Rules by Rick+and+Roll · · Score: 1

      Come on, some AC post the questions and answers to the AP test. I Dare Ya!

    15. Re:Rules by kchoboter · · Score: 1

      No, you are allowed previous exams. The AP group releases them at different times for different subjects but the usual is 3 years.
      You are not supposed to discuss your MC questions, ever. Just because they may be released in four years doesn't change that fact. The programming question sheet is usually given back in a few days, so that can always be discussed.

      FYI I wrote the exam Tuesday (and Eng Lang mon, Calc today) 3 more to go (Eng Lit, Chem, Physics)

      --
      4B4556494E
    16. Re:Rules by malchus842 · · Score: 1

      I generally agree with you. As for legal action, I just don't see how that would work, unless the person was verbatim publishing the question and answer sets (ie exact texts of the questions). And even then, as you say, many of them are minors.

      That said, they can certainly refuse to provide your scores to any college if you don't follow their rules. It may not be nice, and in fact, may well be evil to do so, but since it's their test, they can make the rules about how they report the scores.

      Of course, standardized tests are mostly a crock anyway. I know of >1350+ SAT kids who couldn't hack college.

    17. Re:Rules by hobbesmaster · · Score: 1

      Uhm, year to year? In my AP Eng/Comp class we took last year's AP test last thursday (This year's was monday and for the record I think I did well). Yes, last years test verbatim, as released by the college board. Its not about year to year, its about having the ability to sue people that piss them off.

      Although, you can't use the same english test year to year because the selections are different. In USH however we did take last year's AP exam yesterday (And got back the scores today; unless I fall asleep I'll get a 5 on it). I'm fairly confident that the reason is not to keep next year's students from knowing what was on this year's test because for a reasonable fee they can find out!

    18. Re:Rules by cephyn · · Score: 1

      That's rather odd. When I was taking AP classes, we studied off of old exams, multiple choice included. Perhaps this rule is new? I took APs in 96-97.

      --
      Moo.
    19. Re:Rules by cephyn · · Score: 1

      Weird. My memory is a bit faulty at times, I'll admit, but I'm pretty sure the AP exams we studied off of were in a couple cases, as recent as the previous year...

      --
      Moo.
    20. 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.
    21. Re:Rules by Rallion · · Score: 4, Insightful

      It's still funny, considering that first thing after any AP test the students are all talking about the answers.

    22. Re:Rules by Anonymous Coward · · Score: 0

      I believe that the end read, "and in imprisonment, or fine, or both." I doubt that there is any law under which you can be prosecuted for discussing problems. That's why I discussed them with my classmates in the break before the free-response section. Of course, I also checked the box that forbids College Board to publish my work.

    23. Re:Rules by Anonymous Coward · · Score: 0

      It still doesnt prevent(nor does fair use) the college board from canceling your scores, barring you from taking anymore aps, and sending a note to all of the colleges they can saying that you cheated. Follow the rules or don't take them. They can ruin your chances of getting into college into the US(unless your parents have money). I guess you could sue the liable if they send a note to colleges saying you cheated when you infact did not but that would be a high profile case and unless you won a definite victory you would still have little chance over the college board.

    24. Re:Rules by Quattro+Vezina · · Score: 1

      If you were under 18 when you signed it, that form is the functional equivalent of toilet paper. Minors cannot sign legally binding contracts.

      --
      I support the Center for Consumer Freedom
    25. Re:Rules by Curien · · Score: 1

      They release some questions, after which the question is thrown out.

      --
      It's always a long day... 86400 doesn't fit into a short.
    26. Re:Rules by students · · Score: 1

      Most likely, the old exams you studied from were "Released". The College Board periodically makes multiple choice questions open to the public for non-comercial reproduction. They do it every year with the free response questions. I took the statistics exam, which is farly new, and only has one set of released multiple choice questions to it's name.

    27. Re:Rules by cephyn · · Score: 1

      hehe I took the first ever AP Stats exam. It was way too easy, i heard they made it harder the following year. I'm not sure if my year was considered a trial year or an official year, but i got credit for it all the same.

      That was a weird test to study for, since there were no examples of previous MC or open answer questions!

      --
      Moo.
    28. Re:Rules by Atmchicago · · Score: 1

      As someone taking his last round of tests, it is true they say that you can't talk about the questions. However, half of my math class was going over old test questions (and learning how to do them, of course). The AP board releases old tests every year or so.

      --

      You can lead a horse to water, but you can't make it dissolve.

    29. Re:Rules by Quattro+Vezina · · Score: 1

      The problem with this reasoning is that these are "invented facts" as opposed to "discovered facts."

      Except that most of the information on the AP CS exams aren't invented facts. They are basing the questions off parts of a standardised language, which they most certainly didn't create. I suppose the exact, verbatim text of the questions might be copyrighted, but that wouldn't apply to the fact that they asked you a question about a certain fact (does anyone even remember the verbatim text of test questions? I know I almost always just remember what a question covered, not the exact wording used).

      You might be able to make a case for the Case Study code, since it's not part of the standard, but that's it. And even that's tenuous, what with the Case Study being released to the public and used in CS curriculums all over the US. It's available for download from the College Board site, and I know for a fact that the code came with one of the editions of CodeWarrior.

      The only thing the College Board could sue you for regarding the case study would be for republishing verbatim code without their consent, but that wouldn't bar one from talking about the Case Study, only from copying the exact code used. And even there, fair use guidelines apply. I could be wrong about the exact number, but IIRC, fair use allows for up to 10% of the original material to be copied and requires that the work be used for certain purposes (i.e. comment, criticism, and parody--comment certainly applies here).

      --
      I support the Center for Consumer Freedom
    30. Re:Rules by dont_think_twice · · Score: 1

      haven't you heard of the fucking First Amendment?

      Is that the amendment that says the right to free sex shall not be infringed?

    31. Re:Rules by Anonymous Coward · · Score: 0

      ah, hell, they're still using the damn fishtank model?

      ugh.

      someone from some business-school summer camp came to speak to our APCS class a few days after the test (half of which centered on the fish model.) he said, among other things, that we could try managing a mock fishing industry!

      we laughed the guy out of the room.

    32. Re:Rules by students · · Score: 1

      I would say this year's test was of moderate dificulty. Most of the people in my class who chose to express and openion thought it was hard. But that is voluntary response bias. H0: One or fewer people scored a 1 (claim). HA: More than one person scored a 1. I'm guessing it's best to fail to reject. I'd also say there was at least one 5, and that scores were normaly distributed (I suspect the college board adjusts weighting until they achieve a normal disribution where mu=3).

    33. Re:Rules by Anonymous Coward · · Score: 0

      No, no, you're thinking of the little talked about 8th amendment. I mean, really, what does it say?

    34. Re:Rules by Anonymous Coward · · Score: 0

      My friend wrote about the multiple choice questions on the free response for AP stats...wonder if his scores come with a letter from the College Board's lawyers.

    35. Re:Rules by Vexorg_q · · Score: 3, Insightful

      Second, unless the kids signed some kind of legally binding NDA, there is no law which could allow the College Board to prosecute them for any offense at all -- haven't you heard of the fucking First Amendment? 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. And aren't some of these kids under 18 anyway? An NDA can't apply to them, since any contract they enter into is null and void.


      Having just come from taking 2 ap tests in the past two days, let me tell you, you have to sign 2 or 3 legal statements saying that you agree not to discuss the test and so on. Second of all, a legal agreement can be entered into by any party, typically people do not enter contracts with minors because there is very little recourse in event of some disaster. However, the AP exams, being prepaid for, are not the same as a "regular" contract, and the collegeboard would not risk any loss by entering a contract with an minor since the tests are prepaid.

      as for the copyright portion of their threats, they have plastered all over the tests "unauthorized duplication prohibited". My guess is that theres no way copyrighting a fact would be held up in court, but they probably rape you if you write anything down and try to take it out of the test with you.

      The most effective of all their threats, I imagine , is the canceling of score reports. I'd imagine you'd be screwed before a college admissions depart looked at your application for cheating.

      --

      Idle hands are the devil's workshop, but idle minds are much worse
    36. 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.
    37. 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.

    38. Re:Rules by cjwl · · Score: 1

      I don't remember reading this when I took the AP tests 18 years ago. Then again, I don't remember the multiple choice questions either. I can't believe they ever made kids do it in C++, wretched.

    39. Re:Rules by sabNetwork · · Score: 1

      The case you mentioned is irrelevant. It wasn't fair use, and the defendant clearly benefitted financially from the use of the copyrighted material.
      Sharing factual information for educational use is pure Title 17, Section 107 of USC.
      --

    40. Re:Rules by MATTtheROGUE · · Score: 1

      You have to understand, when we go to take a test; the Procter repeated that so many times. Its almost a creed, they said it when we entered, before we started, after we finished the Multiple choice, and after we finished the free response. It's nutty.

    41. Re:Rules by quantum+bit · · Score: 1

      LOL, the very first thing we did after getting out of the AP Calculus Test of Death was ask our TEACHER about one of the free response questions that nobody had been able to figure out (she wasn't able to either, BTW, and she's one of the smartest people I know).

      Kind of surprised that several of us still got 5s on it -- I guess that nobody else had any clue either. On mine I simply drew a smiley face on the graph paper :)

    42. Re:Rules by suwain_2 · · Score: 1

      For those who keep questioning the modding of this as funny... The reason isn't that they're not serious, it's that at every single time the test proctors read anything from the book, it included a warning about multiple choice questions.

      Time for the break between multiple choice and free response? Okay, remember not to discuss multiple choice questions with anyone, at any time. Finished the free response? Remember not to discuss the multiple choice questions with anyone at any time. Done the test? Okay, but don't discuss the multiple choice questions with anyone at any time for any reason. Ever.

      Even our somewhat unhumorous test proctor made it quite clear that he found the repetition of this to border on amusing. And by the way, before you finish reading this post, remember not to discuss the multiple choice questions with anyone, at any time.

      --
      ________________________________________________
      suwain_2 :: quality slashdot p
    43. Re:Rules by Aneurysm9 · · Score: 1
      I never said a fair use defense wouldn't work. The original poster had said that the questions and answers weren't copyrightable. I was merely pointing out that they were. Copyrightability is merely one step in the infringement analysis. Next you'd have to ask if one of the 106 rights were exercised. If we're talking about people talking about the questions, that doesn't seem like reproduction or even distribution of a copy. That might change if, for example, the questions were posted online. Then it might be appropriate to look at 107 for a fair use defense.

      The Copyright Act is very much procedural. If you don't satisfy the requirements of one step you can't get to the next. I was simply pointing out that any inquiry would have to go beyond the initial step as the 102(b) bar wouldn't stop the inquiry. The case I mentioned is directly on point for that proposition.

      --
      There was Cowboy Neal at the wheel of a bus to never-ever land.
    44. Re:Rules by Aneurysm9 · · Score: 1
      fair use allows for up to 10% of the original material to be copied

      Your point about the fact that a certain type of question was asked not being an invented fact is well taken. Though I'm sure there are NDA type requirements for taking the test, the enforceability of which is probably suspect but sufficient to act as a threat against disclosure. I must take exception with your statement that fair use allows for copying of 10% of the original. I don't know where people get this from, it's simply nowhere in the statute or the caselaw. 17 U.S.C. 107(3) is the closest the Act gets to defining limits on the amount and it merely says that courts should consider "the amount and substantiality of the portion used in relation to the copyrighted work as a whole." Courts have interpreted this to mean that the entirety of a copyrighted work may be copied while remaining a fair use:

      Moreover, when one considers the nature of a televised copyrighted audiovisual work, see 17 U.S.C. 107(2) (1982 ed.), and that time-shifting merely enables a viewer to see such a work which he had been invited to witness in its entirety free of charge, the fact that the entire work is reproduced, see 107(3), does not have its ordinary effect of militating against a finding of fair use.
      SONY CORP. v. UNIVERSAL CITY STUDIOS, INC., 464 U.S. 417, 449-50 (1984).
      --
      There was Cowboy Neal at the wheel of a bus to never-ever land.
    45. Re:Rules by Anonymous Coward · · Score: 0


      Having just come from taking 2 ap tests in the past two days, let me tell you, you have to sign 2 or 3 legal statements saying that you agree not to discuss the test and so on. Second of all, a legal agreement can be entered into by any party, typically people do not enter contracts with minors because there is very little recourse in event of some disaster. However, the AP exams, being prepaid for, are not the same as a "regular" contract, and the collegeboard would not risk any loss by entering a contract with an minor since the tests are prepaid.


      Sorry little boy, but you are wrong.

      Minors can't enter contracts, so the AP exams "would not risk any loss" because they can't enter a contract with a minor in the first place.

      The "sign your name" thing is just a charade to scare idiots that are easily duped, like you.

      The CB is a private organization so they can cancel scores as they see fit. Your legal recourse would then be through fraud, traditional tort law, discrimination, etc.

    46. Re:Rules by Quattro+Vezina · · Score: 1

      IIRC, it's more of a rule of thumb than actual law. I first saw it on a sign posted in my uni's library. There were differing amounts for each type of work. For text, it was 1000 words or 10%, whichever is less (IIRC, there was no entry for source code, so I just went with text, and only mentioned 10%, as ``words'' really don't apply to code). I Googled around to confirm the numbers, and found quite a few sites mentioning it.

      A search for "1000 words" "fair use" should bring up plenty of results. This chart is a pretty good source. Here's another one (you'll have to scroll down quite a bit on this one tho).

      Again, it seems mostly like a widely-used rule of thumb than actual law, but it seems like a good guideline. And even if it didn't really apply, the other provisions of fair use do.

      --
      I support the Center for Consumer Freedom
    47. Re:Rules by torokun · · Score: 1

      BTW, contracts (which is what that is) are unilaterally voidable by anyone when made prior to the day before their 18th birthday.

      Regarding Java. I cringed when I heard CMU started teaching the data structures classes in Java. C++ is definitely the way to go for anything non-functional (for which you have lisp/sml). Every other iterative language is a piece of cake once you master C++... Come on. No memory management? How are you going to do low-level design without memory management... argh. You have to learn to do everything to get a decent education.

    48. 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??

    49. Re:Rules by Anonymous Coward · · Score: 0

      To add to your comment. Something that very few people realize is that the AP tests are taken internationally by American and International schools outside of the US. For instance, I took my A.P. test in Taiwan which is approximately 12 hours ahead (in terms of time zones) then the East Coast of the US. We would always have friends calling us back from the states to get the answers after we took our tests as theirs would be scheduled 12 hours later. Rest assured we never helped them.

    50. Re:Rules by redwyrm · · Score: 1

      What exactly do you mean by level playing field? A few hours after the test in a certain subject is first given, the risk of giving some students an unfair advantage over others vanishes because ALL testing locations in ALL timezones have already finished giving that test. Tho teachers continue to give old tests for their students to practice on, these scores are not reported to college board, and frankly, I don't see why CB gives a flying fuck about what is done with their old testing material...

    51. Re:Rules by Geoff-with-a-G · · Score: 1

      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 some quality reasoning there. I should publish a book:
      Page 1: It is a fact that page 1 of Harry Potter book 1 reads thusly - [verbatim copied first page of Harry Potter book 1]
      Page 2: It is a fact that page 2 of Harry Potter book 1 reads thusly - [verbatim copied second page of Harry Potter book 1]


      I could sell it for just 50 cents above the printing and distribution costs. I'm sure at that price it would sell pretty well. And when J.K. Rowling tries to sue me, I'll just tell the judge that I read on slashdot that you can't copyright facts.


    52. Re:Rules by Anonymous Coward · · Score: 0

      It is against the College Board rules to discuss the multiple choice problems EVER in your life

      Can someone comment on the legality of this statement? It sounds unconstitutional.

      Remember that just because someone writes something in an agreement or contract, that doesn't mean that it would hold up in court.

      I'd say freedom of speech allows you to discuss the exams, and rightly so. I think it's useful for students to discuss exams.

    53. Re:Rules by SillySlashdotName · · Score: 1

      haven't you heard of the fucking First Amendment?

      "Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances."

      You have fallen into a common misconception. The first amendment ONLY RESTRICTS THE FEDERAL GOVERNMENT (actually just Congress...), as do all the amendments.

      1) It is illegal to yell 'fire' in a crowded movie theater. Get over it.

      2) It is illegal to discuss certain national security matters with citizens of several foreign countries.

      3) It is illegal to be heard saying 'Hi Jack!" in an airport. There are fines of up to $10,000 for even joking about terrorism or terroristic activities in an airport. whoops! Where is the over-riding first amendment protection you are claiming there?

      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.

      Right. BUT! You can PATENT the fact, or copyright the collection of facts - all that is required is that there be an element of creativity in the collection or presentation - and that the collection be non-obvious. You can not copyright the telephone listings (basicly a listing of names and the associated telephone numbers), BUT YOU CAN COPYRIGHT THE ADVERTISEMENTS and the arrangement of advertisements - for example the yellow pages.

      And aren't some of these kids under 18 anyway? An NDA can't apply to them, since any contract they enter into is null and void.

      No. The contract is not enforceable AGAINST THE MINOR, but is not void. In addition, this is also directed toward the "Take the test and PASS! GUARANTEED!" businesses where they have people go in and take the test, memorize some of the questions, and then use VERBATIM test questions in their prep materials.

      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.

      Must be nice being as young, stupid, and naive as you seem in your post. The company is selling their expertise in crafting the test. The colleges are depending on the testing companies maintaining a high correlation between the scores and college performance. Your contention that the testing company should NOT discard the scores of people that are flouting the testing rules, cheating, or ignoring instructions and harming the testing company and college "is stupid, it denies reality, and is generally evil." Oh, wait a minute, you must be a college student that cheats, ignores instructions, and breaks the rules. Nevermind.

      --
      Acts of massive stupidity are almost never covered by warranty. --me.
    54. Re:Rules by Anonymous Coward · · Score: 0

      All because they're too lazy to think up new questions every year. Unbelievable.

    55. Re:Rules by pclminion · · Score: 1
      The first amendment ONLY RESTRICTS THE FEDERAL GOVERNMENT (actually just Congress...), as do all the amendments.

      Who other than the government can censor? How can a private individual or organization censor another? You might tape my mouth shut, but that would be assault. You could kill me, but that would be murder. You can threaten me, but that would be blackmail. You can accuse me of slander, but that would be false. You can accuse me of copyright infringement, but there's nothing copyrightable here.

      You can make me enter into a contract, and that's the only recourse you have. But if I'm under 18, it's not enforceable.

      Must be nice being as young, stupid, and naive as you seem in your post.

      It must suck being a crotchety old buzzard who sits around all day flapping his lips off at anyone who (shock!) has a sense of ideals. You see opinions you don't understand and assume they must be born of ignorance, when the real fact is you're too lazy to do the half minute's worth of thinking required to see the logic behind them.

      The colleges are depending on the testing companies maintaining a high correlation between the scores and college performance.

      And they are quite stupid for doing so, exactly for the reasons we're discussing here. The test can be manipulated and people can cheat. Relying on the scores is ludicrous. Such tests are pointless. Threatening legal action against students who talk about the answers is hilarious and demonstrates both the supreme delusion of the College Board and their terrible callousness.

      Oh, wait a minute, you must be a college student that cheats, ignores instructions, and breaks the rules. Nevermind.

      You are a fool to think that because one man defends another, he therefore agrees with all the opinions of that other. And your ad hominem attack is not only baseless, it's childish and logically impotent. Making personal characterizations over the Internet is quite dangerous and more than likely to make you look like an idiot.

    56. Re:Rules by razmaspaz · · Score: 1

      I'm not sure at all how this is funny. Hundreds of high school students who took the test and talked about it on slashdot are now in jeapordy of losing their college credit. Silly moderators.

      --
      I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
    57. Re:Rules by razmaspaz · · Score: 1

      The thing is, it doesn't have to be legally binding. A test score is not a right of the test taker. The AP retains the right ot refuse a score to anyone they wish. They sell the tests and they can revoke a persons test taking rights at will.

      --
      I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
  11. how can you compare scores? by TRyanC · · Score: 2, Insightful

    Does the College Board have any way to normalize scores between tests given in different languages? Or are they only looking for relative scores among people taking the same tests?

    1. Re:how can you compare scores? by Anonymous Coward · · Score: 0

      AP scores are kinda reletive to other people's scores; they do not compare to other years.

    2. Re:how can you compare scores? by Anonymous Coward · · Score: 0

      It's all on a curve. Scores are based on the test takers of that year.

    3. Re:how can you compare scores? by Mycroft-X · · Score: 1

      There's only 5 scores, and only four that matter in most cases. I think the scores reflect mastery of the tested material. It's not a AP Java exam, or an AP C++ exam, it's an AP CS exam. If the variation between scores between languages is greater than the 20% that each score ostensibly represents, there is something seriously wrong.

    4. Re:how can you compare scores? by TRyanC · · Score: 1

      Duh. My bad. For some reason I was thinking of the Achievement Tests, where you get a score out of 800.

      AP, now I remember, 1 through 5, you generrally need a 4 or 5 to get college credit, etc.

      Thanks for clarifying.

    5. Re:how can you compare scores? by Fjord · · Score: 1

      I would hope they wouldn't. If there is a statistical difference between the performance of, say, the C++ group and the Pascal group, it could be attributed to the actual skill of the kind of person who would take it in C++. By normalizing between the tests, it could make it unfair to whichever group has more proficiency.

      --
      -no broken link
  12. This is /. by foidulus · · Score: 0

    I should be able to voice my opinions about something even if I have never taken this test or any other CS AP test.

  13. fp by carrett · · Score: 0, Offtopic

    awww yeah.

    --
    I'm against picketing but I don't know how to show it.
  14. 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.

    1. Re:All around.. by Anonymous Coward · · Score: 0

      I wish you had studied English A LOT more.

    2. Re:All around.. by zhenlin · · Score: 1

      There were I think two tree traversal questions, and one of them was a braindead find the minimum. The other one I don't quite remember, but I think it was add a node to a tree, without balancing.

  15. 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?

    1. Re:One year? by taped2thedesk · · Score: 1
      What's the story with C++ only being the test language for one year?

      I thought this was wrong too - I remember seeing the AP course description for AP CS in 2001 (2000-01 school year), and I'm positive the language was C++. I highly doubt they switched back to Pascal... I think the summary is just way off.

    2. Re:One year? by big_knuckles · · Score: 0

      I took the test 4 years ago and it was in C++ as well.

    3. Re:One year? by TheOtherShoe · · Score: 1

      I think it means that the test switched away from C++ one year ago and switched from Pascal to C++ ten years ago.

      I also took the test with C++, two years ago.

    4. Re:One year? by Anonymous Coward · · Score: 0

      C++ was used for awhile, but it didn't really ask questions that required an indepth knowledge of C++. Really, it was a Pascal test that used the C++ programming language.

    5. Re:One year? by Anonymous Coward · · Score: 0
      and switched from Pascal to C++ ten years ago.
      I know it was more recent than that, since it was Pascal when I took it in '97. I think the changed it to C++ in '99, but I'm not sure.
    6. Re:One year? by jdog1016 · · Score: 1

      It wasn't for only a year. C++ was the language for many years. The story is wrong.

    7. Re:One year? by aserra · · Score: 1

      The summary is definitely wrong. This test was first given in 83 or 84, so we would have to have at least 20 years of tests. WHne I took this back in 84 or 85, it was in pascal.

    8. Re:One year? by Brad+Mace · · Score: 1

      i took it 4 and 5 years ago, and it was C++ both times.

    9. Re:One year? by Anonymous Coward · · Score: 0

      The poster meant C++ was the test language one year ago. That isn't what he said though. He obviously didn't take the AP English test.

    10. Re:One year? by SullDogg · · Score: 2, Interesting

      They're just wrong, I took it the last year it was Pascal (my Junior year) and the first year it was C++ (my Senior). The Pascal/C++ switch was in the summer of 1998, so 6 years ago. I took them both, which was ridiculous, considering the first class didn't count towards colleg eand the second didn't count towards HS. Even though the head of our math department was the AP CS teacher, and he petitioned the school to count them as separate courses, the administration said they ahd the same name, so they must be the same course! I mainly got to do my own thing (since I was auditing it), and do a step beyond each assignment since I'd already figured out the algorithms and such. It really helped me get into complex inheritance and such. On a side note, our class of about 15 had one kid get below a 4. We also did Knuth and other algorithm analysis on top the AP. I also took classes taught by and TA'ed for Astrachan at Duke. He gets derided for the Tapestry stuff, but he's devoted his life to making CS accessible to everyone, and he's a phenominal professor.

    11. Re:One year? by EvilSporkMan · · Score: 1

      This year is the first year that the AP test has been given in Java. The switch was made this year as well, so turnout was probably a bit low as schools were slow to switch. Here's a PDF explaining why the language was switched.

      --
      -insert a witty something-
    12. Re:One year? by fizbin · · Score: 1

      I could have sworn that when I took it in 1991 there were two versions, one in pascal and one in C...

      But that was a long time ago

  16. It sucked by Anonymous Coward · · Score: 5, Funny

    Basically, the entire test was over ArrayList and recursion, the two things we spent perhaps a good ten minutes reviewing the whole year. Screw the college board for switching to Java. In fact, screw the college board in general. Basically, there are two questions I'll tell you (there's a lot of lame laws about not talking about the test, so you didn't see me do this) 1. How many times do you want to punch Leon Schram (author of "Exposure Java" CDROM book series) in the balls? (cirlce one) 1 2 3 4 5 The correct answer to that one is circling all of them. 12,345 times. 2. How many fists do you want to use in the acts described in question one? (free response) Basically write something about "all available limbs and body parts"

    1. Re:It sucked by Anonymous Coward · · Score: 1, Interesting

      hahahahahahaha

      if you can't do recursion you suck balls.

    2. Re:It sucked by blackmonday · · Score: 2, Interesting

      I've been programming Enterprise Java for 4 years and I'm sure I would fail this test, since I don't know anything specific about either one of those terms. And yes, I'm a good programmer. Just a thought.

    3. Re:It sucked by Anonymous Coward · · Score: 0
      I've been programming Enterprise Java for 4 years and I'm sure I would fail this test, since I don't know anything specific about either one of those terms. And yes, I'm a good programmer. Just a thought.

      Huh?

      Know nothing specific about ArrayLists? Then it's impossible that you've been programming Enterprise Java for 4 years.

      Know nothing specific about recursion? Then it's impossible that you're a good programmer.

    4. Re:It sucked by Rallion · · Score: 1

      Recursion is taught to death in every modern, decent introductory programming course I've ever seen or heard of, and ArrayList is one of the most basic of all the collections built into Java. You're clueless.

    5. Re:It sucked by tanksalot · · Score: 1

      You are probably just trolling but I'll bite...
      Thats like saying "I don't know anything about god or religion. And yes I am a good preacher"
      You have got to be kidding. What good java coder (enterprise or not) is not at least familiar with the java.util.* package?

      --
      "I am not denying the existence of stupidity, or of stupid people." - phyruxus
    6. Re:It sucked by tr0p · · Score: 1
      LOL everybody that enjoys programming thinks they are good at it. The sad thing is most of them happily copy and paste so much code together that every final product they come up with is a train wreck because they aren't interested in spending the time to learn about things like design patterns, textbook control structure and data structures.

      So you can scrape together code that gets done what needs to get done, that doesn't make you a good programmer. Use the best code for the job, then ur a good programmer.

      --

      My only regret... is that I have... bonitis..

    7. Re:It sucked by pyite · · Score: 1

      I've been programming Enterprise Java for 4 years

      Sorry to hear that. When the judge sentenced you, did he tell you when you'd be eligible for parole?

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    8. Re:It sucked by natrius · · Score: 1

      Every time I see his name, I remember Bewilderment + Exposure = Obvious. That was one of the questions on the final (which is composed of questions Schram wrote for the book) for my class. Bastard cost me a few points with his bullshit. I don't even remember what point he was trying to make with that.

    9. Re:It sucked by Dwindlehop · · Score: 1

      You've been programming Enterprise Java for 4 years and you don't know anything about recursion?

      --
      Jonathan Pearce jonathan@pearce.name
      3EAAFB2A http://www.jonathan.pearce.name/
    10. Re:It sucked by rdsmith4 · · Score: 1
      Indeed. One question had code for two classes, each calling the other, and the question was "What is the output if x=5" or whatever. Took a friggin hour.

      The recursion I don't understand either - all the professional programmers I know say it's useless and is likely to fill up the stack memory and crash the program.

      Marine Biology Simulation Case Study? The code available before the test didn't even compile correctly. I could have written the same program in an evening using just a class or two (not the 15+ classes and countless methods it took the AP people to do it). They seem to do everything they can to make it more difficult without making it more applicable to a first-year college course (which AP is supposed to simulate) or to real life. I really don't understand where they're coming from at all. As for the "I swear on pain of death or score cancellation never ever to discuss the questions," well, I didn't reveal any answers, and it says in the article that everyone had taken it already. I did it yesterday morning like a good boy.

    11. Re:It sucked by darketernal · · Score: 1

      Marine Biology Simulation Case Study?

      Bahaha, after I took the C++ APCS exam last year, I went and had some gooooood fried fish a few blocks away from the testing center. Vengeance is so, so, sweet... Plus, I got a 5 on it. It wasn't very hard, and the College Board curved pretty liberally.

      Manipulating those dumb classes to move fish around a stupid board was an idea convoluted beyond belief! Then, (I'm not sure if others had to do this), we had to use this CMU Graphics library to paint the fish on the screen. Waste of time! Although, my professor was brilliant - and I'm taking an AI course with him now. I digress...

    12. Re:It sucked by Anonymous Coward · · Score: 0

      Welcome to my world. My teacher was unable to answer basic questions concerning CS2 material, we didn't have a textbook (Schram has so many errors it doesn't count as one), and did I mention that she couldn't pass her own tests with a copy of "Big Java" sitting next to her?

    13. Re:It sucked by G-funk · · Score: 3, Insightful

      I call monstrous shennanigans on this one. Nobody who doesn't understand recursion is a good programmer. Recursion and the limits therein is a fundamental building block of procedural and OO development. And if you don't know anything about ArrayList, you're sure as hell not coming within 100' of our java projects.

      --
      Send lawyers, guns, and money!
    14. Re:It sucked by quantum+bit · · Score: 1

      Leon Schram

      Schram?! Holy crap, don't tell me the college board is still using his "books".

      He wrote the C++ book back in '99 too and it SUCKED. Full of bugs and bad design. Some of the example code didn't even compile.

    15. Re:It sucked by quantum+bit · · Score: 1

      Every time I see his name, I remember Bewilderment + Exposure = Obvious. That was one of the questions on the final (which is composed of questions Schram wrote for the book) for my class. Bastard cost me a few points with his bullshit. I don't even remember what point he was trying to make with that.

      The motto of our APCS (C++) class was "Bewilderment + Obvious = Schram".

      Though "Schram + Knowledge = Bewilderment" was a popular one too...

    16. Re:It sucked by Gzip+Christ · · Score: 1
      The recursion I don't understand either - all the professional programmers I know say it's useless and is likely to fill up the stack memory and crash the program.
      Good god man, I think you mis-spelled "retarded" because "professional" has to be a typo. How exactly would you implement an alpha-beta min-max algorithm without recursion (it's used in chess games, etc.)? A wide range of algorithms (e.g., search algorithms) can also be more clearly written as recurisve functions/methods. Furthermore, memory requirements for recursive algorithms should grow on the same order as stack based iterative algorithms and tail-recursive algorithms can actually run in a constant amount of memory if the runtime environment supports it (ala Lisp). Allow me to demonstrate the ellegance of recursion with this pseudo-code:

      function teachRdsmith4 (location, seen) {

      if (seen.containsElement(location)) return;
      seen.addElement(location);
      kick(location);
      if (location.isBalls()) {
      for (i = 0; i < 5000; i++) { kick(location);
      }
      } else if (!location.onBody()) {
      return;
      } else {
      teachRdsmith4(location + 1 inch north);
      teachRdsmith4(location + 1 inch south);
      teachRdsmith4(location + 1 inch east);
      teachRdsmith4(location + 1 inch west);
      } }
      teachRdsmith4(randomSpot, new Vector());

      Please go use this funtion on your "professional" programmer friends for me.

    17. Re:It sucked by espo812 · · Score: 1
      He wrote the C++ book back in '99 too and it SUCKED.
      Was that C++ for You++?
      --

      espo
    18. Re:It sucked by quantum+bit · · Score: 1

      Was that C++ for You++?

      No, I don't remember the name though. Actually, it wasn't even really a book. It wasn't finished yet and we just got printouts of the chapters as they arrived...

    19. Re:It sucked by Achoi77 · · Score: 1
      And if you don't know anything about ArrayList, you're sure as hell not coming within 100' of our java projects.

      Granted, but knowing the differences between the Collection classes is tricky if one doesn't use them often. Considering that the exam should be more about CS concepts and all, I think what they should have done was not work with api specific classes, but rather more generic/abstract objects (with clearly defined definitions). Of course, this is based on the assumption that Grandparent poster is telling the truth. :-P

      For fun I took the sun java cert exam (the non-coding one). Grabbed a little book and started studying. The most difficult thing for me was trying to remember all the differences between the different Collections. Bah, I didn't like memorizing the differences. I only look up the differences between Collections when it's time to find which class is most appropriate depending on the resource requirements of the project I'm working on. Of course, that's when my book comes in handy, plus it also prevents me from trying to build my own collections set :-).

      As the for recursion issue, it makes me sad that I can't get a programming job.

    20. Re:It sucked by Anonymous Coward · · Score: 0

      Exposure C++.

      We used it too. :(

    21. Re:It sucked by Anonymous Coward · · Score: 1, Funny

      >Nobody who doesn't understand recursion is a good programmer.

      Nobody who doesn't understand grammar should use
      bold letters to highlight their own stupidity.

    22. Re:It sucked by Nerd+With+Nalgene · · Score: 1

      Basically, the entire test was over ArrayList and recursion

      Do they have two different tests? These topics weren't on the one I took at all--it was all about HashMaps and BSTs.

      --


      "as if nothing were solid...and that would be the end of the world, not fire and brimstone, but goo."--Rand
    23. Re:It sucked by Kreeblah · · Score: 1

      The recursion I don't understand either - all the professional programmers I know say it's useless and is likely to fill up the stack memory and crash the program.

      It depends on how you implement it, and (more importantly) how many times it recurses. If you pass by reference than by value (Java primarily uses one of these, but I can't remember which . . . it's been a long time since I've written any Java code), it'll take quite a bit longer for the stack to fill up, as you won't be creating new variables on it with each instance, but it will eventually just because of the program keeping track of return addresses from the function (which would take a fair number of recursions, but it's not all that unlikely for a lengthy problem).

      The benefit of recursion are that for smaller jobs, it can be the easiest code to write. You have to be extremely careful where you use it, though, as there are usually better ways to implement most things.

    24. Re:It sucked by blackmonday · · Score: 1

      Alright I'm gonna explain myself here. I learned how to program without ever taking a class. I can guarantee there are many more like me on Slashdot. I've learned on the job for about 6 years now. Not only am I good (I wouldn't say I'm an expert, I'm not a CS major or anything like that), but I'm much more talented than many I work with who have "degrees". I am the guy they go to when there's major work to be done, because I do it on time and have few bugs.

      As to you point about recursion, I may not know the term, but I looked it up and I instantly recognized the ideas/implementation philosophies of breaking up a problem into smaller logical chunks, etc.

      As for arraylists, I have to tell you that I use Vectors much more often than arraylists, and I don't use the collection classes very much. I'm the lead developer on a massive financial application (that works well!), but I took over the project after it had been in development for 1 year.

      Maybe if I had a CS degree I would feel this sense of superiority that you have, but some of us "get it", by learning from other developer's code techniques rather than the textbook. But of course I have lots of reference materials to draw on too. And I do a good job and make good money, and get to play in a cool band too.

    25. Re:It sucked by G-funk · · Score: 1

      Easy, big fella. Deep breaths. I never said anything against people who work in IT but never took any classes in it. Why would I, when I'm one of them? I think what we have here is perhaps a misunderstaning of your post, and then of mine. I was simply trying to make a point, not attack anybody or preach, I was just saying that recursion is a basic technique of programming that people still need to know, and I stand by that.

      --
      Send lawyers, guns, and money!
    26. Re:It sucked by Anonymous Coward · · Score: 0

      Well...recursion is hardly rocket science. I'm sure there's quite a few diy programmers out there who have never seen a formal discussion on the topic, but who nevertheless have an intuitive understanding of such topic.

    27. Re:It sucked by nojomofo · · Score: 1

      The problem that I see is this: a really good programmer will spend time considering the best data structures to use. Sometimes those will be Vectors (though I'm not sure that off the top of my head I can think of when you'd want to use a vector instead of a synchronized List of some sort), sometimes they will be ArrayLists and sometimes something else. But the fact that you don't know anything about an ArrayList suggests to me that you might be the sort of programmer who assumes that everything is a nail when you have a hammer. Am I wrong?

    28. Re:It sucked by blackmonday · · Score: 1

      Good post. As I stated above, I took charge of a project one year in development. The existing code used Vectors in all cases. I don't think I've seen one actual arrayList. Vectors come in handy when you're reading database records and you don't know how many to expect, and you're using Double objects, etc. Since the bulk of the system was written already, I just used the existing methods to continue development. The company that wrote the bulk of the project had some "real" developers, if I'm not considered one. OK now.

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

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

  18. What about building a foundation? by NetCurl · · Score: 1

    I took the test in Pascal about 6 years ago. I don't really understand why they moved it to Java. It seems to me, at that age, the fundamentals of programming basics are fairly important. I almost wish it would stay at C or Pascal for a while. While Java is nice and all (lots of creature comfort built in), it seems like moving backward from Java to something less comfortable (low-level C coding in the Linux kernel perhaps) is counter-intuitive. When you have the basics, extending to Java seems easy. Vice versa doesn't seem a pretty picture....

    --

    It's only when we've lost everything, that we are free to do anything...

    1. Re:What about building a foundation? by Goyuix · · Score: 2, Insightful

      While I mostly agree with this - back in college I took a networking class which was a breeze because I had been doing it for years prior to the class. Regardless of that, the class was taught from protocols such as HTTP, then TCP, then IP, then Ethernet (link layer)... etc....

      Similar to taking Java and going to C++ then assembler. Quite frankly I think the class was a lot better as a result because it took familiar concepts, explained them in better detail which lead to questions (ok, so how does HTTP guarantee delivery and integrity of the request? it uses TCP), which then got answered in what seemed a very natural way.

      Both approaches have benefits, but just because your picture doesn't look pretty, doesn't mean all paints/ink are going to be so messy.

    2. Re:What about building a foundation? by Anonymous Coward · · Score: 0

      They wanted to test inheritence. Tough to do in PASCAL.

    3. Re:What about building a foundation? by mackstann · · Score: 3, Interesting

      I can't say I know if either approach is better, but in my personal opinion, I don't think there's a huge advantage to learning either higher-level or lower-level languages first. Many people started with assembly and now code Java and do just fine. I, on the other hand, started with scripting languages and worked my way down (to C so far, I'll tackle assembly eventually) -- and I do just fine. I think the importance of ability of the individual dwarfs the importance of what order things are learned in. If you have the right mindset to be a programmer, you'll figure it out either way. If you don't have the mindset, you'll probably suck either way.

  19. 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.

    1. Re:Language lengths by Anonymous Coward · · Score: 0

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

      In my case, when they switched the test to C++, I got fucked the fuck over.

      See, my school only tought Pascal. So, I took a year of Pascal only to then be told that the AP test had changed and I couldn't take the AP Pascal test (Dispite taking the AP-level Pascal class and not getting any weighted credit for it.)

      I also couldn't take the AP C++ test, because, as I said, the school didn't teach it. (Nevermind that I could code C++ pretty well on my own.)

      Fuck the College Board. Fuck my school system.

    2. Re:Language lengths by rickst13 · · Score: 0

      I do not think the original poster was stating the number of years the C++ test was administered.

      Instead, he was referring to the veracity of the number of years.

    3. Re:Language lengths by euxneks · · Score: 1

      The poster must have had a really hard party for the year 2000 ;P

      --
      in girum imus nocte et consumimur igni
    4. Re:Language lengths by Fjord · · Score: 1

      Or he's just partying like it's 1999.

      --
      -no broken link
    5. Re:Language lengths by NerdForChrist · · Score: 1

      Yeah, I was wondering about that, b/c I know I took the exam in 2000 and it was in C++ (and I got a 5).

  20. Java has become a standard in many schools by Omega1045 · · Score: 5, Interesting

    When I was doing CompSci (about 10 years ago), they were just switching from Pascal to C++. Many of the files at my fraternity were in Pascal (so much for those "references"). However, speaking with younger students that have worked for me over the last several years, more and more of them have been taking Java instead of C or C++, and many have never seen Pascal.

    Another thing that I have noticed is that a lot of students are also taking VB in college, and some of the windows based scripting languages based on it like ASP. I have also seen a lot of PHP experience. This is especially true of engineering, and compsci related courses (not hardcore compsci).

    I am surprised that the AP exam for Java wasn't around several years ago based on what I have seen in a variety of school via 2nd hand knowledge.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

    1. Re:Java has become a standard in many schools by FriedTurkey · · Score: 1

      I actually did start with C, PASCAL, and assembler. Didn't learn C++ until junior year after switching to business info systems. (Wierd the business had C++ and computer science had C.) It was a lot harder to learn OOP after being corrupted by functional programming. I got an "A" despite not really understanding OOP (it was a business course) but I didn't really get OOP until I got in the real world.

    2. Re:Java has become a standard in many schools by Anonymous Coward · · Score: 0
      C, PASCAL....functional programming
      Try: "procedural programming".

      Functional programming languages: Lisp, ML, Haskell.

    3. Re:Java has become a standard in many schools by SmackCrackandPot · · Score: 1

      Man, that makes me feel old...

      Atari Basic/6502 1981-1987, At Home
      Apple Basic . . .1984-1985, In High School
      Pascal/8086 . . .1986-1987, 1st Year University
      C . . . . . . . .1988-1994, 2nd Year University
      C++ . . . . . . .1994, Postgraduate - as templates were being introduced

      Around 1996, my high school moved to Pascal. At present universities teach Java for the first year, then moves to C++. Recently the department had an open day for the final year students. Nearly all the projects were web based (XML/Visual Basic/CGI/Perl/JAVA) and I don't think there was a single project that was written in C++. I guess this is the influence of the requirementss being placed on C++ programmers:

      Computer Science degree, 2:1 or better, must be from a red-brick university and have five years experience at a good software company.

    4. Re:Java has become a standard in many schools by fingusernames · · Score: 1

      When I was in CS at Purdue, all the intro programming/data structures courses were taught in Pascal. Most of us learned C as well, as part of other classes, in particular higher-level data structures and OS courses where real pointers are handy... though we did do a low-level machine emulator in *Pascal*, that was interesting. For C++, we learned it in a crash-course, during compiler design. The prof wanted us to use C++, and only like two people in the course had used it before. So we had a several week intense learning session, and then designed & implemented a C++(subset) -> SPARC asm compiler. The same for other compiled and scripting languages, learned them during a course that needed it.

      Larry

    5. Re:Java has become a standard in many schools by Rudy-Omega · · Score: 0

      What we are seeing is that a lot of universities are moving to Java as their programming language of choice for teaching OOP. I stand behind this since a greater depth of knowledge of OOP is needed for CS students coming out.

  21. I took it in Pascal way back when by RobPiano · · Score: 2, Insightful

    I have never used Pascal since, and I felt it taught me some incorrect concepts. A small percent of my class (myself included) then took the course again over the summer in C++. I felt the C++ experience was much more worth my time. I honestly don't know about how I think about teaching kids java first.

    I think you should start with C and assembler. Learn the very very basics of computing before you teach OO programing. I personally don't consider my AP experience worth while. Its hard to get a decent computer science professor in a highschool and even harder to teach complex concepts to students who think computer programming is "making video games" and "lots of money". This was especially the case when I took it (during the dot com boom) and even terrible programmers were making lots of money.

    1. Re:I took it in Pascal way back when by Zerbey · · Score: 1

      I do agree with teaching Assembler to kids in school, but teaching someone C first is a bad way to go because it's so easy to write sloppy (but functional) code.

      Pascal is a better language to learn on as it is more strict about syntax. I'm not saying it's a better language in general, but it is a good learning language. So is Modula-2 but it is a horrible language for anyone who's been programming for a while and anyone with any programming experience will hate you for making them use it.

    2. Re:I took it in Pascal way back when by slimak · · Score: 1
      Assembler is not a langauge, its a tool. I think you're looking for assembly. Thab being the case, what specific assembly do you feel is a good staring ground. Should students start with a basic MIPS processor? maybe an HC11? a PIC? or should they be thrown to the sharks and immediately begin with wiring code for the P4?

      Personally, I learned on an HC11 so I am biased toward this or similar processors. Many of the TI DSP processors are very programmable in assembly.

    3. Re:I took it in Pascal way back when by Rallion · · Score: 2, Insightful

      I really don't think Java is good as a first language myself. It does a lot of things for you, and that's not how you should be starting.

      A person who learns to code first in C learns a few fairly important things a Java programmer never needs to think about, and also some things that will make learning Java much easier. A C-experienced person going into Java understands what pointers are and how the use of pointers affects how Java works. They understand memory allocation and the need to deallocate the memory as well. If they've learned C++ and OOP (not many people learn just plain C nowadays) then they get what the hell a class is right off the bat, which is important since a one-line Java program has to contain a class. (I hate it when teachers have to say, 'Ignore that, I'll explain it later.') These things can be explained to somebody who knows his C++ in the space of ten minutes.

      Now lets consider what I've seen from people who learned Java first as they move into C/C++. They never ever remember to use the delete command. They don't really understand pointers, they just think primitives work differently than other datatypes. They often keep trying to wrap the program in a class, which of course, doesn't work.

      The fact that C is easier to mess up in is the very reason it's a good starting language. It helps to start dealing with things like memory allocation early, and it's good to use a language that gives you a lot of control. Is it harder? Yes. But the key is that it requires a greater understanding of the programming concepts to master it. I know far too many people who "can do it" in C, but can't do it well. They're too experienced to be making the mistakes that they do, because all of that experience was under the soft overprotective blanket of Java.

      Java's fine as a language, just not a first language.

    4. Re:I took it in Pascal way back when by Malc · · Score: 1

      Modula-2 (Modula-3 now?) is a really good teaching language. Better than Pascal even. I think C (and C++) is a bad idea as there are so many distractions from the core concepts that you're trying to teach. Simple, basic (pun not intended) languages are the best way to start teaching programming concepts.

    5. Re:I took it in Pascal way back when by Nerd+With+Nalgene · · Score: 1

      I learned C++ before taking the AP Java class, and I really don't see any of the benefits you're pointing out. I still don't understand memory allocation and deallocation, and I see no reason why I would ever want to--the computer can do that better than I will ever be able to. Furthermore, we never got far enough through the C syntax (pointers, etc.) to even think about doing any OOP. When I first started in Java, the only reason I knew what classes were for is that I had seen some C# before.

      But if you want to complain about a first language, try VB. That was my first, and second, and it really doesn't teach any programming skills at all. It gives a new programmer the idea that software design is all about making pretty forms and knowing which kind of button to use. Yet, for some reason, schools seem to think it's what ought to come first.

      --


      "as if nothing were solid...and that would be the end of the world, not fire and brimstone, but goo."--Rand
    6. Re:I took it in Pascal way back when by zorander · · Score: 1

      I disagree. I think java is an excellent first language. Why?

      Well, first of all, there's a good, free, cross platform implementation and lots of usable free environments (Eclipse, etc). Eclipse from Linux to Mac to Windows is almost completely self-consistent. This is very impressive. To add to it, the java standard libraries are the SAME. No worries about which implementation you're using really have to come into play like they do with say the STL (compare code warrior to g++, for instance...at least a few years ago). A very small subset of the standard libraries are needed for this type of course, but that's fairly irrelevant.

      Even more importantly than that, it's better to teach the theory of computer science without worrying about the mechanics of the language. Java implements a concept called a class, a comcept called an interface, a concept called an iterator. These concepts can be generalized. Knowledge of how C++ classes behave based on the assembly code they reduce to in one implementation does not build the concept in the same way.

      I think the basics of computer science are in basic alforithm design. C and assembler are horrible for that. If you want to teach basic algorithm design, pull out Standard ML, an excellent language for the purpose of teaching computer science ideas, or java, which is at least simple.

      You can know very little about java and still use it. The same is not true for assembley or C. In both of those languages, for example, you have to manipulate strings as memory regions. Again, a string is a concept in computer science and discrete math, not a 'memory region'. It shouldn't matter to a student how a specific implementation does them. Learning how to manipulate strings via pointers is not material for an intro to programming class.

      For intro, I'd say Java or Python. Two high level languages that insulate you from the computer a bit so you can learn how to write a loop before you have to learn how to use a debugger.

      Other possible reasons for these include tracebacks on failure, consistent error messages across platforms, etc.

      The idea is not to confuse or discourage the students, while teaching them something. Python in particular lets you get results fast and is very satisfying to work with. Java is almost as good in that regard.

      Brian

    7. Re:I took it in Pascal way back when by Rallion · · Score: 1

      Well, then, it seems you never did really learn C[++], did you? That's where your problem is. The old AP C++ test required knowledge of the pointers and classes that you unfortunately missed out on. If I recall correctly, last year's AB test even had a simple Part II question involving an array of linked lists, and you needed to write some code for searching and modifying the lists. It was a while ago though, that may not be exactly what it was.

      VB is hardly more than a toy, I think. It's got a few decent uses, but it's more of a "program editor" than an actual language.

  22. 1 year of C++? by Mycroft-X · · Score: 1

    What was the test in from 2001-2003? I took it in C++ in 2000, which must have been the lucky year. If not, it must have been in C++ for at least 3 years (was 2000 the first? I can't remember).

  23. Computer Science or Computer Programming? by robindmorris · · Score: 1
    Following the theme of the earlier discussion, should this be called a "computer science" AP exam, or a "computer programming" exam? Calling it "computer science" gives the students the impression that CS is about programming; programming is only a very small part of computer science.

    Many years ago I took "o-level" computer studies, which nicely finessed the issue.

    1. Re:Computer Science or Computer Programming? by JMan1865 · · Score: 1

      Well, if you can get a degree in 'computer programming' then yes - this should be a 'computer programming' AP exam.

      As such - I went to school for a 'Computer science' degree, and my programming classes were 'computer science' classes - thus the AP exam is rightly 'Computer Science' - if you score well enough on the test - you should get CS credits.

      --
      I think the people above me are having sex - or they're sleeping restlessly and agreeing with each other a lot.
    2. Re:Computer Science or Computer Programming? by jdog1016 · · Score: 1

      Well, the test does ask quite a few questions on Big-O notation and algorithm complexity analysis, so I'd say that calling it a "Computer Science" test is fair.

  24. hmmmm by Anonymous Coward · · Score: 0

    took it. failed. know nothing if programming.

  25. Sample Question by Anonymous Coward · · Score: 0

    What is 2++ 2?

    har har har

    1. Re:Sample Question by beerman2k · · Score: 1

      Syntax error?

    2. Re:Sample Question by kyoko21 · · Score: 1

      I would believe that is an compile error due to the lack of a semi colon :P

    3. Re:Sample Question by Anonymous Coward · · Score: 0

      What is 2++ 2?

      In C/C++: Syntax error.

      Those are the tokens: (constant) 2 (punctuator) ++ (constant) 2.

      The first two tokens may recognize as postfix-expression but then the next token is a syntax error. There is no other possible recognition in the context of C or C++.
      This is a syntax error.

    4. Re:Sample Question by kraiger · · Score: 1

      Yeah, it wants a semi-colon! =P

  26. Surprised I'm by Anonymous Coward · · Score: 2, Funny

    I was sure they were going to go with Forth this year.

  27. I say great! by Rosco+P.+Coltrane · · Score: 4, Interesting

    The more Java programmers the schooling system churns out, the more work for us old-style programmers who know C and assembler.

    You'd be surprised how much the industry is sick of Java programmers, and on the lookout for good low-level engineers, or people who can do Forth or COBOL.

    It's the current schooling system that allows me to keep a dot-com salary, so don't change anything for me thank you very much.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:I say great! by agent+dero · · Score: 2, Insightful

      I beg to differ, it's GREAT that Java is being taught (i took the test, btw)

      It's a simple language (relative of course) and allows teachers to teach good concepts, such as, recursion, algorithms, and Object-oriented program.

      Honestly, if colleges were turning out graduates only with Java experience THEN you'd be right, but from my understanding, java is only freshman and sophmore level in college.


      Don't worry, i'm coming for your job anyways ;)

      --
      Error 407 - No creative sig found
    2. Re:I say great! by arhar · · Score: 1

      You'd be surprised how much the industry is sick of Java programmers, and on the lookout for good low-level engineers, or people who can do Forth or COBOL.

      Hahaha! Obviously you know nothing of the COBOL programmers situation right now... They are lucky to get ANY job at all, for a fraction of what they were making 'back in the day'. A friend of my family has lost his job due to 9/11 and hasn't found one since... he's currently volunteering and looking for a job. He's a very smart guy, he's got a PhD and is a great programmer.. but he doesn't have experience in anything other than COBOL.

      So um, yeah, good luck staying with C and assembler all your career, while the 'young fools' are running around with their Java, C#, and XML.

    3. Re:I say great! by Sanity · · Score: 1
      You'd be surprised how much the industry is sick of Java programmers, and on the lookout for good low-level engineers, or people who can do Forth or COBOL. It's the current schooling system that allows me to keep a dot-com salary, so don't change anything for me thank you very much.
      Hey - if you want to make money exploiting those poor bastards that still rely on Cobol - then good for you, but you are essentially in the same position as a drug dealer (ie. profitable, but not much job satisfaction).

      Personally I would rather do interesting work for people that enthusiastically want my skills, rather than for those that grudgingly need those skills - irrespective of the monetary rewards.

    4. Re:I say great! by mongbot · · Score: 1

      Yes, because it's obviously impossible for the students to be later taught assembler and C as well as Java. We all know it's only possible to ever learn one language.

      To be serious, at my Uni we were taught Java first, but that hasn't stopped them from giving us pretty hard-core courses in C and assembler. I think Java isn't perfect, but it's a good introductory language. Would you prefer students were taught C or assembler first? Many would drop out, I think.

    5. Re:I say great! by Anonymous Coward · · Score: 0

      Tell that to the bank that owns your mortgage.

    6. Re:I say great! by Anonymous Coward · · Score: 0
      Tell that to the bank that owns your mortgage.
      Tell that to the poor-bastard bored-senseless code-monkeys that work for the bank that owns his mortgage who will spend the rest of their pathetic lives maintaining their spagetti Cobol code-base.
    7. Re:I say great! by Rosco+P.+Coltrane · · Score: 1

      Personally I would rather do interesting work for people that enthusiastically want my skills, rather than for those that grudgingly need those skills - irrespective of the monetary rewards.

      You know what? I do whatever people are happy to pay me for. Assembler, C and Forth (I don't do COBOL) are things I do very well, and they are marketable skills right now. I don't force anybody to pay me to code in these languages instead of Java.

      The day Java is ubiquitous and C/asm disappear, I'll get a job as a Java programmer, since I can do Java too. My point is, the new generation can't do asm and C efficiently, the old dirty way, because they're been brainwashed into thinking OO and clean-code-over-tricks-at-all-cost : the latter is very nice and desirable, but the former is the reality. Period. And that's not going to change anytime soon.

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    8. Re:I say great! by mikeg22 · · Score: 2, Insightful
      The more Java programmers the schooling system churns out, the more work for us old-style programmers who know C and assembler.
      ...and as more new programmers are java/.net programmers, the more new applications are written in these languages, and the more obsolete assembler/vanilla C programmers become. There will always be legacy systems, but as the computing needs of the world grows, new applications are produced, and I assure you most new applications are not going to be COBOL or assembler applications.
    9. Re:I say great! by Anonymous Coward · · Score: 0
      You know what? I do whatever people are happy to pay me for.
      How sad. My first criteria is whether I personally find it interesting, then I think about whether I can get paid to do it.

      I guess we have different priorities (as do girlfriends and hookers).

    10. Re:I say great! by Rosco+P.+Coltrane · · Score: 1

      How sad. My first criteria is whether I personally find it interesting,

      But you don't understand: what I find interesting is providing great services to people. When someone asks me to code something in any language, and I perform well and deliver what they want in time, I take pride in seeing my customer happy. I'm proud of doing that, just like you're happy doing Java.

      As it happens, most of the customers I code C or asm for do have legacy code that needs working on (sometimes not), but they're really glad when someone competent comes and does the work fast and well, and they're equally happy to pay me for my services. You call that being a hooker?

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    11. Re:I say great! by galacticdruid · · Score: 1

      ya seriously - with processor speeds what they are these days, there is 0 reasons to use assembly for anything besides device drivers. hardware is cheaper than the extra man years of developer time.

      --
      we are all one consciousness experiencing itself subjectively - bill hicks
    12. Re:I say great! by Rosco+P.+Coltrane · · Score: 5, Insightful

      ya seriously - with processor speeds what they are these days, there is 0 reasons to use assembly for anything besides device drivers. hardware is cheaper than the extra man years of developer time.

      You Sir, and the people who think like you, are the reason I still have a great job.

      There is more about computing in this world than PCs and Macs. What do you think runs in your microwave oven? or your fancy watch? or your car's engine computer?

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    13. Re:I say great! by vdoogs · · Score: 1

      I would have to agree. Any monkey can call a library function to read from a file, but the closer you can get to the actual hardware algorithm, the closer you are to being your computers absolute god. Don't leave it to Microsoft/Sun, they will rape your memory and pillage your hard drive space.

    14. Re:I say great! by ejaw5 · · Score: 2

      There are times in microprocessor/embedded chip microcode design where you need to insert assembly instructions in your C code, or do an entire function in assembly. Some hardware specific things cannot be worked out in C.

      --

      $cat /dev/random > Sig
    15. Re:I say great! by Anonymous Coward · · Score: 0
      You'd be surprised how much the industry is sick of Java programmers, and on the lookout for good low-level engineers, or people who can do Forth...
      A yes, FORTH. Language of industry.

      We've already computed how many jobs there are for languages based on Monster.com. For FORTH, the answer was <= 9. And most of those hits just used the term "forth" as in "go forth".

    16. Re:I say great! by Anonymous Coward · · Score: 0

      We've already computed how many jobs there are for languages based on Monster.com. For FORTH, the answer was

      And monster.com does...?

      All you said is that monster.com has nobody listed looking for a job who can do Forth. Which means that they're all hired, which means exactly what your parent post said.

    17. Re:I say great! by NitsujTPU · · Score: 1

      I disagree. Assembly and C++ are also more efficient in the way that they do business.

      On a side note, I added you as a friend. I don't generally speak my mind directly about issues such as those addressed by this article, becuase I know that my point of view is unpopular, but I find myself agreeing with quite a bit of what you said.

      Aside from that last part. Excellent design can come out of programming in assembly/C/C++.

    18. Re:I say great! by pyite · · Score: 1

      Yay, another great product of this generation's education. I'm not saying I don't agree with your reasons not to use assembly. But I do disagree with your reasoning. It leads to bad, bloated code.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    19. Re:I say great! by grue23 · · Score: 1

      Did you think the Pascal and C++ programmers the AP test was churning out before were somehow more of a threat to you "old-style" programmers?

    20. Re:I say great! by Anonymous Coward · · Score: 0

      Im going to catch the next wave of language fad by learning D.

    21. Re:I say great! by Anonymous Coward · · Score: 0

      i guess it's a good thing that our CS 1 & 2 class (pre requisite to APCS) in high school is still C .. now if only i remembered any of that stuff from 2 years ago .. x_x;...

    22. Re:I say great! by EvilSporkMan · · Score: 1

      "teaching languages" are crap. I maintain that it really wouldn't be that much more effort to use a real language. Also, my AP CS A class had lots of trouble using Java (they can't read compiler errors except for line numbers); I doubt they could screw up C++ worse.

      --
      -insert a witty something-
    23. Re:I say great! by bluGill · · Score: 1

      If only it would get you a job... I will program in whatever you pay me to program in, and I can learn that language fast. I've never seen a language with a learning curve that takes more than a couple days to get over. (Note that someone with 10 years in one language will know it better than me after a week, but the difference won't be particularly significant in the real world)

      HR still demands 10 years of Java, and 5 years of .net. (Nevermind that they aren't that old) I'm sure in a few years something else will be the fad that they will refuse to hire me because I don't have lots of experience in it.

    24. Re:I say great! by Anonymous Coward · · Score: 0

      Or for that matter, massive financial systems that were written more than 15 years ago on those dinosaurs that never die - the IBM Mainframes...

    25. Re:I say great! by psoriac · · Score: 1

      What do you think runs in your microwave oven? or your fancy watch? or your car's engine computer?

      My watch is 100% mechanical. It has a pendulum that swings whenever I move around so that I never have to wind it or change its batteries. There is no lcd display to crack or discolor. It keeps the date via a perpetual calendar which is accurate until 2024.

      I'm not trying to disagree with you; I agree completely. I'm just trying to say that not everything that can be digitized should be.

      --
      I browse Slashdot at +3, Funny
    26. Re:I say great! by Henry+Pate · · Score: 1

      I'm not sure if I fully understood what you are saying, but regardless, this could be useful to somebody. You can add assembly code into your C programs. Something like this: int myfunc() { asm { mov ax, 0; } return 0; } On intel compilers there's another way, just search google.

      --
      Si Hoc Legere Scis Nimium Eruditionis Habes
    27. Re:I say great! by zorander · · Score: 1

      I don't know what schools you see people coming from, at but the school I go to (CMU), we're exposed to, at minimum:

      -Java
      -Standard ML
      -C
      -i386 Assembler

      Additionally, I've already run into python in one of my courses, and C++ in another. No we don't learn every language on the planet, but any emphasis on "Java programming" is pretty much over after you're second semester.

      Brian

    28. Re:I say great! by Anonymous Coward · · Score: 0

      What do you think runs in your microwave oven? or your fancy watch? or your car's engine computer?

      Little elves in running shoes.

    29. Re:I say great! by Anonymous Coward · · Score: 0

      Just to add, although we use a bit of assembly here and there, the firmware we are writing here is mainly in C++

      Fiarly object oriented C++ in places, too - queryinterfaces and such, though no templates.

      Moores law applies to embedded processors too. I reckon that it's at about the point home computers were at slightly after the switch from 8bit to 16bit mainstream.

      There will laways be a low end - the chips on drug delivery systems in your bloodstream will get it next - but it's a shrinking field. People are demanding more and more of embedded chips.

    30. Re:I say great! by Captain_Chaos · · Score: 1

      You'd be surprised how much the industry is sick of Java programmers, ...

      Could you expand a bit on that? Cite some sources, for instance, instead of making blanket statements out of the blue? I'm a freelance Java programmer, and I've been at work and earning good constantly over the last few years, when the rest of the IT world was down the toilet. The industry is certainly not sick of me or my colleagues. And why would they, since Java makes it an order of magnitude easier to write well documented, maintainable, portable, scaleable, robust, bug-free and fast programs than for instance, C or assembler?

    31. Re:I say great! by Fjord · · Score: 1

      You'd be surprised how much the industry is sick of Java programmers, and on the lookout for good low-level engineers, or people who can do Forth or COBOL.

      You're right, I would be surprised. In this town COBOL gets about 25K-40K/year less than Java, and Java requistions are hard to fill. I don't know much about low-level or orth jobs, having never looked at them, but the industry is hardly sick of Java programmers.

      --
      -no broken link
  28. CLEP and Test Out by _Sharp'r_ · · Score: 3, Insightful

    The AP tests are decent, but it's been my experience that taking a CLEP test is easier, faster, less expensive _and_ tends to get your more college credit for the same amount of knowledge.

    The next best thing is taking classes to fill up your "full-time" requirements of a certain number of units per semester and then testing out (by taking the final and passing) of the classes you already know. Many on Slashdot could probably get a lot of CS classes passed that way, for example. Those credits count towards "in residence" requirements as well. (The colleges want those tuition bucks, they don't care if you had to go to the class or not as long as you paid them for it.)

    AP tests are probably the third best way, but not as useful as the above. I took and passed AP English (5) and AP U.S. History (4) in H.S. and got a lot more credits out of their CLEP counterparts.

    Also, if you are good at tests and already fairly knowledgeable, check out Western Governors University, a fully accredited University that does all classes via certified testing. That means if you know your stuff you could pay for one sememster and then test out of a four-year or master's degree. Difficult, but possible.

    --
    The party of stupid and the party of evil get together and do something both stupid and evil, then call it bipartisan.
    1. Re:CLEP and Test Out by MeanMF · · Score: 1

      I got my ass kicked by the Humanities CLEP. Maybe I should have studied.

    2. Re:CLEP and Test Out by Anonymous Coward · · Score: 0

      I took and passed AP English (5) and AP U.S. History (4) in H.S.


      So you major is bullshitmaster??
    3. 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.

    4. Re:CLEP and Test Out by sigemund · · Score: 1

      You are right on! I learned about CLEP tests when I went to an open house at my college. I'd already taken some AP tests, and by taking the CLEPs, I was able to test out of about a year of college. With some work and good scheduling, I graduated in three years.

      It's definitely a good idea for saving some tuition money, or for someone who just doesn't want to sit through humanities courses or history classes. It's also worth checking into departmental exams for colleges -- some have tests that are not part of any national standard, but are created at the university as a means for students to test out of courses.

    5. Re:CLEP and Test Out by Anonymous Coward · · Score: 0

      I took and passed AP English (5) and AP U.S. History (4) in H.S.

      So you major is bullshitmaster??


      At least that person can write in English.
    6. Re:CLEP and Test Out by jdog1016 · · Score: 2, Interesting

      If you can go to a school and test out of "a lot of CS classes," then your school probably has very little to offer anyway. A degree is about more than knowledge--it's about achievement. There are VERY few people, if any, that come out of high school that have enough knowledge or experience to even approach that level. As for testing out of a degree, any school that would give a degree to you after a semester is not worth your time or money.

    7. Re:CLEP and Test Out by speby · · Score: 2, Interesting

      I'll agree that the CLEP can get you more credit, however, many high schools right now offer 'AP' classes as part of the curriculum for eligible students. In other words, the classes themselves perpare students for the exam by covering required material. So, for many students who may not be able or willing to study the material on their own, they can have a class that will prepare them for the exam to which they can hopefully get a good enough score on to receive college credit from the university or college they attend after high school.

      I myself took AP Comp. Sci. (when it was C++) and AP Calc. and recieved 11 hours from university for the two of them, almost a full semester. That, coupled with taking a few more hours than normal each semester enabled to me to graduate in three years.

      So, if there was one thing I'll make sure my kids (if and when I ever have any) is to make sure they take college credit examinations, if for nothing more than to save money. Seriously, avoiding just ONE year of more schooling saved me about $12,000! Plus, by graduating early and going to work (or a master's I suppose), I can increase me earnings potential by one entire year. I only wish I had taken more AP exams.

    8. Re:CLEP and Test Out by _Sharp'r_ · · Score: 1

      I was taking a community course at the local college on "Assembly for 8 bit processors" for fun while I was in 7th grade. This was circa C-64s and Apple IIs being popular. I don't recall any first year CS classes being even that advanced, although I confess that I started as a computer electronics engineering major, so it was more physics and hardware oriented than software at that time.

      I suspect that many of the Slashdot audience could easily test out of "prerequisite" first year CS classes that are designed for people who don't have much computer experience yet. I bet there are some people here who had to take "Intro to Windows " or "Spreadsheet" when they already knew everything the class taught. Don't waste your time.

      As for WGU, if you already have the work and life experience to know 90% of the stuff, then the other 10% can be acquired in a semester without major difficulty. If you don't know the stuff, then the program is designed for you to learn it at a "normal" pace. Again, don't waste your time and money on things you already know.

      There are a lot of people in the Slashdot readership that may have been working in the field for 10+ years and do not have a degree. The IT field is like that. Those people probably can get one in their field from WGU with only a semester or two of work to cover the stuff they don't know. This isn't because it's an easy course, it's because they've already learned it over several years.

      A degree is about learning stuff and getting a piece of paper to show you know it. Sounds like you value the piece of paper more than the learning. I'd just as soon spend my valuable time actually learning things I don't know already instead of sitting in a class about something I already know more than the teacher about just to get a piece of paper.

      If you can test out of the first year or two of college, then that just gives you the time to start the third year earlier, it doesn't somehow cheat you of the requisite suffering needed to have achieved a piece of paper.

      --
      The party of stupid and the party of evil get together and do something both stupid and evil, then call it bipartisan.
    9. Re:CLEP and Test Out by Anonymous Coward · · Score: 1, Interesting

      That's not necessarily true...
      When I went to college 10 years ago, I only took AP tests, and I earned enough credit to be classified as a sophomore when I started. I tested out of Calc I, Calc II, English Composition, one History class, the Foreign Language requirement, and a science class.

      Posting AC, 'cause I don't want to brag too much.

  29. The least funny... by Anonymous Coward · · Score: 1, Interesting

    thing about the AP test was when they threatened "copyright infringment" if you discussed specific multiple choice questions.

    I'm under the impression this is b.s. If this were true, then anyone who ever said anything bad about a writen publication would be sued.
    It kinda mad me mad, actually.

    1. Re:The least funny... by Anonymous Coward · · Score: 0

      You are confusing two things. One is saying bad things about the test which is legal. The otehr is telling others the exact questions. People have gone to jail for that.

  30. too easy by Anonymous Coward · · Score: 0

    i was expecting a bit of a challenge, but it was laughable.

    i was done with the first twenty questions in 15 minutes, the mult choice section in 40 minutes.

    the written section was a bit more difficult, but not much. 105 minutes were alotted for it, only 60 were needed.

    they either need to make the test shorter or add material to avoid boredom.

    1. Re:too easy by Incoherent07 · · Score: 2, Insightful

      I daresay many of the people taking the AP test have no intention of becoming CS majors. Even after 2 years of CS classes in high school, some of them don't know how to sort a list. (I should know, I was one of the people essentially telling them how to write their programming assignments.)

      Even when you take a "challenging" AP test, like Physics C (calculus-based), it's graded on such a curve that you can get half of them wrong and still get a 5.

      --
      This is my sig. There are many others like it, but this one is mine.
  31. Pascal by ValourX · · Score: 1

    Back in 95 I took the AP Pascal exam. That was the first year of the "new" exams, so we didn't know what to study. I think I got a 2. I never went to college anyway, so I guess it didn't matter.

    Good thing it didn't matter; what do people still use Pascal for anyway? At the time, C++ was an elective course (I took it the following year) with no available AP exam. Java wasn't even invented yet. These kids today have everything.

    -Jem
  32. No wonder... by Anonymous Coward · · Score: 1, Funny

    "In past years, the exam has been based on C++ (1 year) and Pascal (around 10 years)."

    That might explain why I did so poorly several years ago when I tried to take the test based on Java.

  33. MOD PARENT DOWN (IT'S NOT FUCKING FUNNY) by Anonymous Coward · · Score: 0

    hurry

    1. Re:MOD PARENT DOWN (IT'S NOT FUCKING FUNNY) by puddpunk · · Score: 1

      I'm sorry, I don't know what makes me piss myself everytime I see this "MOD PARENT DOWN" Troll, but it just seems so urgent. I think it's the "hurry". You're right, the joke isn't fucking funny.

      Keep up the trolling. Kthnx.

  34. 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
    1. Re:Should we be able to talk? by Unregistered · · Score: 1

      C++ was just as easy and came with case study code and quick references.

    2. Re:Should we be able to talk? by vix86 · · Score: 1

      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!

      I'd have to agree with you on that. I was able to fly through the first two free response questions in about 15 minutes thanks to Java, don't think I could have done it with C++.

      Most of my time on the free response was sucked up flipping through that Appendix and looking to find the stuff I needed to answer the case study question. My only real complaint on the whole test was how one of the questions was worded on the free response, the "create the RandomLocation function" question I think it was. Don't know if I got full credit on that one...

      Multiple choice was pretty easy. I think I skipped only one question and that was a question that wanted you to give the way an array of strings looked after having been run through a sorting algorithm's outer for loop twice; way too much work to figure out with how much time I had left. On top of that, the multiple choice reminded me how much I hated function recrusion. I've never been able to understand how it all worked out and when they have two functions calling each other back and forth it gets pretty confusing. Luckily function recrusion isn't very effcient so I won't be using it often.

    3. Re:Should we be able to talk? by pi42 · · Score: 1

      Amen to that -- this is probably an exaggeration, but I feel like if you spent a few hours brushing up on the concepts (linked lists, arrays, etc.), you could take the exam and do pretty well just by relying on the quick reference and case study code. I thought it was pretty bitchin' easy.

      I think there was one free response question which asked you to write an interface -- I didn't remember the exact syntax for it, but luckily, the quick reference had the complete code for a few interfaces!

      Although, I think that that's not really an "unfair" advantage -- since in any real-life programming situation, you can always glance at a quick reference for the exact syntax or a quick refresher.

    4. Re:Should we be able to talk? by kg439. · · Score: 1
      Most of the good heartly case-study code was included
      I actually found this fact to be kind of cheap - my school got us review books with all of the case study code plus explanations and background and such. I think that actually gives some students an advantage if they can afford the AP prep materials. They should give a different case study each year or something that's released at teh test not before.

      The appendices really are a great help...no need to learn the Java spec for any class you'll need...it's all right there!

      --

      "And perhaps, posterity will thank me for having shown it that the ancients did not know everything." -Pierre Fermat
    5. Re:Should we be able to talk? by zeroduck · · Score: 1

      I have to agree that the test seemed easy. I took the AB test, and it was kind of anticlimatic to be doing all these hard review problems, and end up taking that test.

      For future reverence, I used the Barrons review book. I really liked it, even though the material was definately harder than the test itself. Best be over prepared?

    6. Re:Should we be able to talk? by DarkChocobo · · Score: 1

      I took it the other day as well. I have to say, it wasnt as hard as the lame practice books that we had been using, which had a lot of ArrayList and recursion. Learning by the "Exposure Java" method though... I dont know. Its good for learning the language but I dont think its very good for learning about the language-independant stuff.

      --
      Kweh!
    7. Re:Should we be able to talk? by Nerd+With+Nalgene · · Score: 1

      A friend of mine took the C++ exam two years ago, and got a 3. This year, he took the Java exam with
      us, and he's pretty darn sure he got a 5. Java, and the emphasis on object oriented code instead of just
      using what is provided by the language, made all the difference.

      --


      "as if nothing were solid...and that would be the end of the world, not fire and brimstone, but goo."--Rand
    8. Re:Should we be able to talk? by SuperMog2002 · · Score: 1

      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! I took the AB test in C++ in 2002. I did no reviewing for it whatsoever, fell asleep during the multiple choice for about half an hour, and got a 5. With the apstring class to take care of string manipulation (think StringBuffer minus a few features), the test was more or less 6 hours of college credit for $40.

      --
      Sunwalker Dezco for Warchief in 2016
  35. I took the last Pascal exam... by Dr.+Bent · · Score: 5, Insightful

    My graduating class was the last one to take the Pascal AP exam. When I got to college, all of the classes were taught in C++, and I started in a second year class based on the AP credit I got from the exam. I was expecting it to be very difficult, considering I had never had C++ before, and it was...for about a week. Then I realized that a Stack is a Stack and a Linked List is a Linked list and once you learn the syntax of the particular language you're working in, Computer Science is really language-neutral.

    Computer Science is not about programming. It's about finding solutions to problems using computers, which is a very different thing. Moving the AP exam to Java seems like a good idea to me, but I doubt it will have any real impact on the curriculums of the schools that make the switch. The principles and concepts taught in any decent Computer Science undergrad program were just as valid and relevant 50 years ago as they are today as, they will be 50 years from now.

    1. Re:I took the last Pascal exam... by jesser · · Score: 1

      Then I realized that a Stack is a Stack and a Linked List is a Linked list and once you learn the syntax of the particular language you're working in, Computer Science is really language-neutral.

      Pascal, C++, and Java are all imperative languages. Do you know any functional languages? The only one I know is SML, and programming in SML is very different from programming in C++ and Java.

      --
      The shareholder is always right.
    2. Re:I took the last Pascal exam... by Dr.+Bent · · Score: 1

      I done some work in LISP, and there's nothing in LISP that isn't based on the same computer science principles that are used in C++ or Java. Obviously, the way they're applied is very different, but again...a Stack is a Stack.

    3. Re:I took the last Pascal exam... by orange_6 · · Score: 1

      I took the Pascal exam in '95 and went straight into C++ as well. Easiest thing ever, went through the first few semesters without learning anything I didn't already know in High School, and they even let me skip a class. Nine years later, a stack is still a stack :)

    4. Re:I took the last Pascal exam... by Jack+Greenbaum · · Score: 1

      SML is also an imperitive language. Do you know any declarative languages? Prolog's a fun one.

    5. Re:I took the last Pascal exam... by grue23 · · Score: 1

      I had the same experience with taking the Pascal test then getting bumped into a second year CS class. However, it was a harder transition for me because in the first year class some OO concepts were taught, which I didn't get at all in AP Computer Science in high school.

      To address some other threads, I also got exposure to imperative langauges in that same second year CS class, my school focused much more on concepts than it did on any specific language. We were allowed to use pretty much anything for most assignments in most classes (unless it was OpenGL for Graphics, or something). Someone even turned in an assembly interpreter in Hypercard at one point.

    6. Re:I took the last Pascal exam... by aled · · Score: 1

      Prolog's a fun one.
      NO.

      (guess you have to know a little Prolog to understand this one)

      --

      "I think this line is mostly filler"
    7. Re:I took the last Pascal exam... by sd3 · · Score: 1
      The principles and concepts taught in any decent Computer Science undergrad program were just as valid and relevant 50 years ago as they are today as, they will be 50 years from now.

      I'm no Computer Scientist so feel free to tell me I don't know what I'm talking about... but it seems to me that CS has undergone a few major paradigm shifts in the past 50 years, including the "recent" shift from functional programming to object-oriented.

      Yeah I know you said CS is not about programming and I heartily agree, but the conceptual leaps involved in making such shifts come from theory, not from practice. Practice goes through contortions to follow theory; look at the Linux kernel source for an example of object-oriented concepts in a non-object-oriented language.

    8. Re:I took the last Pascal exam... by Anonymous Coward · · Score: 0

      Our CS department is thinking about switching from C++ to SCHEME for the introductory CS courses (there is a series of two freshman classes that are called intro to computer science I and II, but all they really do is get students familliar with programming. the first course is introductory programming. the second coures is applied data structures and OO programming). The first actual CS the students get is Discrete Math their second year. This class separates the men from the boys, or to be PC the adults from the kids (and lots of the people that do make it take it more than once)

    9. Re:I took the last Pascal exam... by Lugae · · Score: 1

      Parent is absolutely correct. People tend to ignore the fact that certain languages are meant for certain tasks. A lot of people also tend to think that all of the theory taught in computer science curriculums is a waste of time. So, just as a Stack is a Stack and a Linked List is a Linked List, the theory makes you think about problems a lot differently, whether you notice it or not. People forget that they're getting a degree in computer science not computer programming.

    10. Re:I took the last Pascal exam... by dotnut · · Score: 1

      I feel java shouldn't be used for teaching either algorithms or oop. It can be in c or c++ or even smalltalk. There is nothing called c microedition, c++ enterprise edition and pascal bloated profile. c or c++ or any language is just a means of expressing your ideas to solve a problem.
      Solving a n-queens problem will stress on the problem and not on the language, the language doesn't matter really. OOP alone cannot make our lives simple look at the linux kernel its really big, can you believe it was written in c?

    11. Re:I took the last Pascal exam... by Geoff-with-a-G · · Score: 1

      Computer Science is not about programming. It's about finding solutions to problems using computers

      Nope, that's Computer Engineering.
      Computer Science is about studying computation (feel free to Google "definition of Computer Science"). A good analysis is "Comp Sci is to Physics as Computer Engineering is to Mechanical Engineering"

      Science is studying how the world works, Engineering is taking the knowledge that Science has given you and using it to solve problems.

      In theory, no acadmeic field is supposed to prepare you to be a skilled worker upon graduation. The theory is, you study basic principles in school (be that high school, undergrad, or grad study) then you go to work somewhere in an entry-level (by definition, requiring no specialized skills and experience) position, and your foundation of knowledge better prepares you to understand and absorb the training and experience you get at the specific job.

      That was the theory. In reality, employers need employees, and students need jobs, so there's pressure on schools to teach their students practical work-related skills. This is addressed somewhat by having different programs of study, one for those who want to study the science and theory, then another for those want to learn foundations which will prepare them for employment. Again, take Physics - which tends to lead its graduates to further grad study or employment in research programs, and Mechanical Engineering - which tends to lead its graduates to work for engineering firms.

      Unfortunately, because Computing is a newer field than, say, Physics and Chemistry, it hasn't really found this kind of academic equilibrium yet. Several schools are starting to offer Computer Engineering degrees (I myself graduated with a B.S. in Computer and Systems Engineering) and courses in specific programming. This is not to say that people shouldn't study Computer Science, simply that most of those studying it today expected it to be about programming, not about Computer Science.

      Bottom line, Computer Science as a field is not for people seeking to become programmers. It's just that all those people have been going to Comp Sci because they either didn't know better, or because the alternatives weren't there yet. As the field matures, I would expect more students to learn the difference between Computer Science, Computer Engineering, and Programming, and then to choose their field accordingly.


    12. Re:I took the last Pascal exam... by chrisabailey · · Score: 1

      I believe I took the first AP CS exam in 1984 in Pascal. I don't remember all of the questions but one asked us to design a structure for handling a sparse matrix. I suspect they did not doc you much for syntax but were looking more at general structures. I thought the test was extremely easy compared to the other AP exams (Biology, History, Chemistry etc...) even though I was essentially self taught and I believe I made a 5 (highest score). When I got to college the 100 level programming courses were all easy but I suspect that was because a lot of students had never used a computer before college. An interesting history convergence, I was learning high school Pascal on an Apple II which compiled into Pcode. That never caught on until JAVA came out with the Java VM. (The style of cloths has just about come full circle too).

  36. I took it in Pascal by Edmund+Blackadder · · Score: 0, Flamebait

    I took in Pascal and got a 5. I'd just like you all to know that.

  37. Java at Uni by T-Kir · · Score: 1

    I remember when starting Uni in Autumn 1997, Java became the mandatory module instead of C++... so much so that we were really the guinea pigs because the lecturers hadn't taught it before.

    Most of us were wanting C++ modules to be bought back as an option, but were denied... and when I did get involved with C++ I found it made it harder learning the memory management issues (i.e. pointers) going from Java to C++.

    Mind, Java has certainly progressed from being regarded as a 'university fad' programming language (AFAIK), but one or two years after we started, I think the uni reintroducted the C++ modules.

    --
    Are you local? There's nothing for you here!
  38. A Great Idea... by bobej1977 · · Score: 4, Funny
    They should fully specify a nice big project, like an accounting system or a 3D shooter. Then rip it into day-long chunks and farm it out as the AP test. Say 10 people all get the same chunk, to ensure that at least one guy will get it right.

    Bada-bing-bada-boom. The one day project! Massively parallel programming! Now, if only I can find away to harness the power of bajillions of people sorting playing cards in solitaire to crack encryption codes! Muahahah!!!

    [coughs] [takes medicine] Alright, I'm okay now.

    --
    The meek shall inherit the earth, in 3 by 6 plots. - Lazerus Long
    1. Re:A Great Idea... by egeorge · · Score: 1

      I tried to use this technique to make my wife's pregnancy go a little smoother. I told her to get 8 of her closest friends and they could get that baby done in just one month. Somehow, it isn't working out quite like I had hoped.

      Seriously, though, if you weren't joking, check out this book The Mythical Man Month

  39. C++ and Pascal by alanwj · · Score: 1

    I took the test both in Pascal, and then again the next year in C++ (I believe the 98-99 school year was the one in which the exam was in C++).

    Anyhow, the Pascal exam focused quite a lot on whether you understood basic algorithms and data structures.

    The C++ exam, in contrast, focused on whether or not you knew C++.

    For the record, I got a 4 the first time, and a 5 the second.

    Alan

    1. Re:C++ and Pascal by Anonymous Coward · · Score: 0


      I took the test both in Pascal, and then again the next year in C++ (I believe the 98-99 school year was the one in which the exam was in C++).


      Yup. That was the year I took the C++ one. So it must have been more than one year, because that was the first one and they haven't changed it since then.



      The C++ exam, in contrast, focused on whether or not you knew C++.



      I didn't get the same impression but I memory is probably fuzzy. There were questions on complexity and data structures and I thought the written section focused on this. The use of C++ was so superficial (which is only a good thing in this context). As I recall, the strictness on the coding was somewhat relaxed. The graders certainly didn't have the ISO standard sitting next to them.

      The Comp Sci AP is not designed by any luminaries in the Comp Sci community.

      If it were they would require all the coding be done in MMIX.

  40. Language of AP Test by paulnuyu · · Score: 1

    In past years, the exam has been based on C++ (1 year) and Pascal (around 10 years).

    I think the poster may have his numbers confused. It was in C++ for as long as I can remember (up until the change to Java of course). I took both the A and AB tests a number of years back and both were in C++. In fact, my teacher also took the exam when he was in high school (only the A test was offered then) and even then it was in C++.

    1. Re:Language of AP Test by MeanMF · · Score: 1

      It was definitely Pascal when I took the AB test in '91...

  41. Re:Since when... by Neil+Blender · · Score: 5, Funny

    What the hell is with all this highschool crap on /.?
    Since when did /. become some place for high school loosers to hang out?


    Oh, since, well let me think...SINCE FOREVER!

  42. C++ for only 1 year? Don't think so by Anonymous Coward · · Score: 0

    I took this test in May 1999 and it was "C++". My shitass school didn't offer the class, but the College Board requires the school with any AP program to proctor any exam a student requests. Needless to say, once I discovered that I ended up taking a lot of APs.

    The CompSci AP was really easy. It was based on C++ but it was not really full C++. They had their own custom simplified STL. It was really more about time/space complexity and algorithms and REALLY simple data structures.
    As many people say, the language used at this level doesn't really matter it is just a vehicle for some higher level concepts.

    Note to students that have Physics B or Calc AB schools: do yourself a favor and study and request to take the Physics C tests and the Calc BC. The Physics B is a non engineering/science major exam it won't do you any good for those programs. Physics C will generally translate to your first 2 semesters of engineering/science physics. Calc BC can cover 2 semesters rather than the AB 1 semester.

    1. Re:C++ for only 1 year? Don't think so by togofspookware · · Score: 2, Interesting

      > Note to students that have Physics B or
      > Calc AB schools: do yourself a favor and
      > study and request to take the Physics C
      > tests and the Calc BC. The Physics B is a non
      > engineering/science major exam it won't do
      > you any good for those programs. Physics C
      > will generally translate to your first 2
      > semesters of engineering/science physics.
      > Calc BC can cover 2 semesters rather than
      > the AB 1 semester.

      That's good advice. Nobody I asked seemed to know this, so even after taking AP physics in high school and getting a 4 on the B test, I'm now having to take 2 more semesters of physics, which cover the exact same things we covered in high school. From what I hear, the C test isn't even especially harder than the B.

      Here's some more advice to Software Engineers:
      When you first get in, tell that you're a CS, test out of as many programming classes as you can, and then change your major back to SE. At UW-Platteville, anyway, the tests are pretty easy, but only if you're a CS. SE's gotta do a lot more work. This will do wonders for your credits and amount of free time :)

      --
      Duct tape, XML, democracy: Not doing the job? Use more.
  43. it didn't use to be much of a test by target · · Score: 1

    I took AP computer science in high school back when it was Pascal, based, in 91-92. I mostly remember the exam as being surprisingly easy.

    I took 5 AP classes my senior year, and one my junior year. CS was significantly the easiest test, without much competition. In case you care, the others were english, physics, math bc, biology, and music theory. No, music theory wasn't the second easiest, or even the third.

    CS was also the only class where by january we had covered all the material on the exam. I hope it's gotten more challenging since then, or it's basically a waste of time in terms of demonstrating much knowledge. I guess it's ok if it's just being used to pass you out of a beginning class, but it's certainly not as challenging as a beginning class at many colleges.

  44. Easy Exam by HeghmoH · · Score: 1

    I took this exam in 1998, at which time I had not seen a line of Pascal for about three years. My school didn't have a class for the exam, so I just took it on my own. I "studied" for about half an hour the night before, finished the exam early and got a 5 (the maximum possible). It was a joke, but it did get me out of the first semester of Computer Programming at university, so I'm very happy I took it.

    As for the debates on whether this qualifies as "computer science", I think it's a moot point. Kids in elementary school take "math", even though true mathematics doesn't actually deal with any numbers, but it's something you need to learn to get started. It really is a programming exam, but it's very basic. (One of the questions was basically, "write a flood-fill subroutine".) If you're examining students at that level, they will not be able to analyze an algorithm or tell you what an AVL tree is. It's intended as a replacement for the basic freshman-level university programming class, and it does just fine in that capacity.

    --
    Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
  45. Bah by madcow_ucsb · · Score: 1

    I took it back in the pascal days. Useless, really. At least going to UCSB the best it'd do is give you credits. It wouldn't get you out of any required CS classes...I don't think.

    As far as I could tell, for engineers, math, gov't and history AP were the only tests worth taking unless you plan to be low on units (which is tough as an engineer). Possibly lit, not sure what you got for that. Even chem wouldn't get you out of the required chem for science/engineering majors, it'd just give you credit for the easier one for non-tech majors.

    Don't kill yourself senior year with 7 AP classes without double-checking that passing the stupid test'll help you in college. I took five classes (2 APs, gov't and calc) senior year, got to hang out with the other slackers after lunch, got into a UC, graduated and am now at least as successful as my friends who's parents would probably beat them if they didn't take every AP available and spend all waking hours senior year studying for the SATs...

  46. AP Computer Science for 2 years by Anonymous Coward · · Score: 0

    Here is a little background from a student who take the AP Computer Science test for 2 consecutive years, last year, and the year before. There is an 'A' level and an 'AB' level. The AB level covers more material such as big-O notation, searches, amd sorts. On the A test I got a 5 (the highest score possible). On the AB test I got a 4.

    The test is separated into two sections: multiple choice, and free response. The free response questions involve writing a function, or a few lines of code.

    C++ was the topic of the test for both years that I took it. This year, they moved to Java, which I know, but I decided not to take since I am already taking 5 other AP tests over the course of this week and next week.

    The AP tests are tricky; you have to be sharp in order to score well on them.

  47. polyglots only? by moviepig.com · · Score: 2, Interesting
    Java, C++, or Pascal. Hmmm.

    If the intent is to measure a grasp of computer fundamentals, why not use a toy language comprising the programming primitives common to all three? (Such a toy language would would be simple enough to be defined on the spot ...including only, say, assignments, conditionals, loops, and maybe a simple I/O.)

    But, if the intent is instead to measure proficiency in a particular language, then why not offer all three?

    --
    Seeing bad movies only encourages them. Watch responsibly
  48. C++/Java by wan-fu · · Score: 4, Insightful

    The C++ exam was definitely not only one year in the running. It was for many years, probably 5+ or so, Pascal being supplanted in the mid/late 90s. I took the exam years ago and I think it's a good move to bring the AP to Java for a number of reasons.

    The biggest reason is the computer science AP when administered using C++ required students to learn the "AP" libraries. That is, they actually developed their own versions of the important data structures that most people use. I think this was mainly due to the fact that most people see the STL as bloated and under-utilized. On the other hand, everyone uses the Java libraries and this cuts out the need to learn additional code (not to mention that the AP code like apvector, apmatrix, etc. wasn't even written that well).

    Of course, teaching Java does seem to abstract memory management too much, and this is a negative as a result of moving to Java for the AP exam. However, this is outweighed by the consideration above and the fact that I think it's genearally "more fun" for students to learn Java.

    By "more fun" I mean that every student will be able to write applications at home or at school and be sure that it will run elsewhere regardless of what system they have. I remember as a TA for a high school programming class that sometimes code wouldn't work going from home to school to other machines at school (e.g. Visual Studio->CodeWarrior->KDevelop) and often, people who wanted to do more advanced things with graphics were limited by the libraries (though I guess we could've done stuff with Allegro or something of the sort). With Java, there's instant gratification in being able to drop in an import for awt and swing and immediately get GUI feedback.

    Finally, because it's most important to learn theory in these courses, Java makes for better teaching in comparison to C++. Stronger typecasting, no multiple inheritance, etc. makes Java a language that is "better" in terms of teaching computer science theory (though it's not necessarily better so in practice).

    1. Re:C++/Java by Anonymous Coward · · Score: 0

      Actually, I think they used their own libraries because of poor compiler support for the C++ standard. For example, when I took the class, they made us import AP's bool.h file to get a boolean type.

    2. Re:C++/Java by mmatloob · · Score: 1

      You still have to learn the standard java libraries like you learned the AP code, the only difference is that Sun wrote the code and not the College Board. I spent a while trying to understand arraylists, etc. The Java Class refrence did just had the interfaces and they did not say whether or not .get() is O(1) (implemented as an array) or O(n) (implemented as a linked list). I am not even sure now and I don't care now either.

    3. Re:C++/Java by Lugae · · Score: 1

      I am constantly amazed by the amount of people who are upset because they can't use their code referencing the precious AP libraries after they get to college. When I took AP computer science, we actually ignored the AP libraries and wrote our own pieces when we needed them. I'm glad that we did.

    4. 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.

    5. Re:C++/Java by wan-fu · · Score: 2, Interesting

      Two things:
      1) I never said anything about the "precious AP libraries" - I don't know anyone who likes them and/or misses them.
      2) You are REQUIRED to use the AP libraries on the exam.
      I'm talking about the problem of having an AP-specific library on the exam and teaching theory through Java in the classroom. I'm not talking about using the AP C++ library in class.

    6. Re:C++/Java by Lugae · · Score: 1

      Sorry, the "precious AP libraries" comment was not directed at you at all, though, after re-reading, I realize that I should have specified. My bad. I'm talking about people that I know personally.

      Personally, I think that using Java's collections framework instead of the AP libraries could solve a lot of student's woes by not letting them think that apvector and apmatrix are available everywhere they go.

    7. Re:C++/Java by Anonymous Coward · · Score: 0

      Wouldn't it have been kind of difficult to prepare a curriculum using Standard C++ in time for the 1998-1999 school year?

  49. Testing for slowness?? by Anonymous Coward · · Score: 0

    Being a Java test - the higher the score, the slower you think.

    1. Re:Testing for slowness?? by Anonymous Coward · · Score: 0

      C'mon. Java's not THAT slow.

      Sincerely,
      Molasses

  50. My Impressions of the Exam by StarCat76 · · Score: 1

    I took this AP exam (AB, not A) yesterday. The multiple choice was 40 questions and they gave you 1 hour, 15 minutes. For the 4 short answer ones where you actually wrote code, you got 1 hour, 45 minutes. The multiple choice was pretty long and took me the whole time, whereas the short answer part was easier and took under an hour to complete for almost everyone in the class. There were many questions about the Big-Oh efficiencies of various algorithms, especially sorts. A lot of the exam was independent of the language used, just about algorithms, but there were a few about the details of inheiritance and other Java-specific things.

  51. C++ ? good god ... by vlad_petric · · Score: 2, Interesting
    Pascal is reasonably clean, but C++ ... ? c'mon.

    Top reasons I hate it:

    Operator overloading - the most abused feature, as it makes coders feel "in control". It's very rarely useful for non-library stuff (container/matrix/numeric code that's already coded), but it manages to screw up projects very easily through abuse.

    References. They're simply idiotic. You can't really do useful stuff with them, as they can't be NULL, . Java references are fine, C++ references - a pointless feature meant to save you a "*" or "->", that doesn't really offer any advantage over pointers, but manages to make code unreadable if you use pointers, statics and references at the same time.

    Memory management. Either you are a high-level language and you do GC, or you're low level (like C) and you fully control it. C++ manages to get the worst of both worlds here, as object orientation w/o GC is a big mess. (leaks because "ownership contracts" are not respected are very common)

    Templates. I do think generic types are a good idea, but what's the f* point of making the template sub-language Turing complete?? (Yes, you can write partial recursive functions to be evaluated at compile time ...). Furthermore, if you allow member functions to be templated individually of the class, things can get really tricky.

    Multiple inheritance. Everything's ok, until you get a piece of code that works when you inherit A then B, but fails if you do it the other way around. Happened to me ...

    My point - C++ for AP ? Worst idea ever.

    --

    The Raven

    1. Re:C++ ? good god ... by Anonymous Coward · · Score: 0
      Yes, [with templates] you can write partial recursive functions to be evaluated at compile time ...
      How?
    2. Re:C++ ? good god ... by vlad_petric · · Score: 1

      Look here. Scroll down to the implementation of factorial with templates.

      --

      The Raven

    3. Re:C++ ? good god ... by Jack+Greenbaum · · Score: 1

      I agree with all your negatives. On the plus side though are namespaces.

    4. Re:C++ ? good god ... by bluGill · · Score: 1

      So don't use those things. It turns out that all the things you cite are things that a few people abuse, and others need. C++ gives you plenty of rope to hang yourself if you want to. However that also means there is enough rope to do something useful.

      Why did you use multiple inheritance if you don't like it? Obviously you didn't need it for the problem you wrote about, so why did you use it anyway? The rest of us just avoid multiple inheritance until there is no other choice.

    5. Re:C++ ? good god ... by iabervon · · Score: 1

      The real problem with C++ is that they keep changing it in ways that haven't been studied such that someone (like the language designers) understands it. How do you make sure that memory held by objects which are locals gets freed when control leaves the function due to an exception these days?

  52. what if the errors aren't graded properly? by edrugtrader · · Score: 0

    who catches the exception?

    --
    MARIJUANA, SHROOMS, X: ONLINE?! - E
  53. took it yesterday by Anonymous Coward · · Score: 0

    I took it yesterday, and a month ago i had virtually no knowledge of programming beyond qbasic, and ti basic (texas instruments crappy on-calc language), and read an ap prep book, took the ab test and i think i did pretty well on it. The questions were all relatively straight forward, and they gave you an appendix with pretty much all the java you needed to know, so anyone who knew c++ would have been able to take the test. The one thing i did notice was a lot of big O notation crap for analyzing effciency, but i didnt think any of it was that hard

  54. ERROR CORRECTION: It was C++ for 3 or 4 years by LordKazan · · Score: 2, Insightful

    I took both the A and the AB tests in C++ - and i know it was C++ for alteast 3 years because I took the A test in 2000 and the AB test in 2002

    On a sidenote: it should still be in C++ - java = BARF

    --
    If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
  55. As opposed to other AP exams by Stickney · · Score: 1

    this one was a lot easier; especiall ywhen compared to Physics which kicked my tail pretty bad...

    --
    ...the right of the people to keep and bear arms, shall not be infringed.
    1. Re:As opposed to other AP exams by Sage+Gaspar · · Score: 1

      Unless things have changed drastically in the last two years, take my word when I say that out of all the exams, Physics is the absolute hardest, except maybe Chemistry.

      I came out of the testing room convinced that I had a 1 (and I'm not one of those "OMG I failed" people), and I ended up with a 5. I think the percentage of MC questions to get a 5 that year was somewhere around 60%.

      IMO, that's how most tests should be. I think you get more out of actually being challenged, and the tests are on a scale.

  56. I was a taker by Medieval_Gnome · · Score: 5, Interesting

    I took the AP AB Computer Science exam, which covers all that would be covered in the first year of a college level CS class, as opposed to the A exam which just covers just one semester. Most CS classes in high schools are just A level, so taking the AB involved doing stuff on my own (ick).

    Before this class, I had been programming for a while, and was self-taught in QBasic, C, C++, Perl, some Java, and Python. So my perspective might be a bit on the 'too easy' side.

    That said, I thought the exam was really well done. It covered simple things (giving a 'mystery' method and making you figure out what it does) up to more complicated things (binary trees, recursing through them). Something else they covered, which I think is critically important, and also think wasn't covered under C++, is the efficiency aspect of programs. Some questions would ask which is more efficient, quicksort or insertion sort (easy answer), while others would get a bit harder, giving the runtimes of two unknown sorts on a random array and on a sorted array, and making you figure out which sorts they used. All efficiencies were in 'Big O' notation, not being as in-depth as Art Of Computer Science, but what can you expect from high school students?

    Also, there was a marine biology case study which was a larger body of code to deal with and worked our abilities to deal with things that we can't see the source for. This was also present in the C++ version of the AP exam.

    --

    :wq

    1. Re:I was a taker by Anonymous Coward · · Score: 0

      meh... I took the AP CS A test as a sophmore in highschool and easily got a 5 on it.. *yes hate me all you wish*... and I wish I had taken the AB test... because I know I would've gotten at least a 4 on it. It doesnt help that when scores got back my friend, who I was equal with in the class, got a 5 on the AB test -_-... bah well that's why there's next year and the Java AB test .. ^_^;..

      It helped though that our teacher has an amazing ability to teach. He taught that class in preparation for the test in May. We covered everything before hand and went through the case study as well.

      *Well until next year I'll be sitting here kicking myself some more for having not taken the AB *

    2. Re:I was a taker by skasingularity · · Score: 1

      I was also a taker, but I am a highschool student. My teacher doesn't see any point in doing just the A exam since it won't get you anywhere, so we basically cover as much as we can in one year. One thing I think you forgot to mention, the new exam has shifted more towards OOP than when the test was given in other languages.

    3. Re:I was a taker by Jman314 · · Score: 1

      I also took the AB exam. Our class was supposed to cover AB things, but we mostly got through the A. I missed the days where we covered most of the B stuff (mostly data structures, linked lists and trees), but I took it anyway. It doesn't really matter what I got however, because the university I will be attending doesn't give much credit. At least I will see how I stack up. Oh well, at least the course was fun.

    4. Re:I was a taker by synthparadox · · Score: 1

      I took the AP Java A test on Tuesday. I don't know about you guys, but I thought it was extremely easy. Of course, the AB was rumoured to be much harder by my fellow classmates that had taken AP C++ AB last year. I missed out on AP C++ credits because at the time I was in 9th grade... I really don't see any freshmen in high school taking AP classes, do you? Anyways, since I am a sophomore in high school this year, I still have two more years to take the AB exam on my own time. I think I will take it next year, but I know for sure I got a 5 this year. Better safe than sorry.

    5. Re:I was a taker by Anonymous Coward · · Score: 0

      exactly what I thought.. I can take the A now and be safe and take the AB later, but... oi i still should've taken that AB... the A was way too easy when it was C++ last year... esp since i knew i had a 4 minimum on the AB .. *continues to kick self offline...*

    6. Re:I was a taker by Anonymous Coward · · Score: 0

      What can we expect from highschool students? If they want college credit for what they're doing, the same dang thing that we would expect from college students.

  57. ouch by Anonymous Coward · · Score: 0
    "The more mammals the schooling system churns out, the more work for us old-style dinosaurs."

    Glad you like the past - because you will be staying there for quite some time!

  58. C++ is a better test... by Anonymous Coward · · Score: 0

    I took it...I know about 3 Java commands. Its kinda useless, all you see it used in is crappy Yahoo games. Besides C++ is much more useful.

  59. C++ test by IceFox · · Score: 2, Insightful

    I took the test the first year it was C++ and got a 5 out of 5 points on it, but when I got to school they gave me 2 credits (i.e. almost nothing) for it. It was a real let down putting all that effort into it and getting so little (scholasticly) in return. Of course knowing C++ while still in high school and being able to explore compsci on my own I think very valuable.

    -Benjamin Meyer

    --
    Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
    1. Re:C++ test by ashot · · Score: 1

      what did you expect? be glad you got any credit at all, some good schools do not give credit at all; the test is too easy to be worth much college credit.

      --
      -ashot
    2. Re:C++ test by addaon · · Score: 1

      If it makes you feel better, I put no effort into it (well, one hour taking the test, and two hours sleeping in an uncomfortable chair... more than I've done for some courses; certainly no studying or class or anything) and got a 5 out of 5, and 8 credits (half a semester's worth).

      That doesn't make you feel better?

      --

      I've had this sig for three days.
    3. Re:C++ test by Anonymous Coward · · Score: 0

      You got it better than I did. I got a 5 and was awarded credit for CPSC 110. However, my college's CPSC and CECN curricula start at CPSC 111, and 100-level classes can't be used as technical electives, so for all practical purposes I got no college credit for the AP exam.

      However, since I had to learn C++ anyway, and didn't spend much time specifically studying for the exam, and had the exam cost subsidized by my high school, the amount of wasted effort was negligible.

  60. Was going to take it by jdhutchins · · Score: 1

    I took Computer Science at my school. The teacher wasn't particularly challenging (or good, as he didn't teach much). I looked at the AP concepts list, and realizes that the AP comp sci required stuff is pretty much worthless, IMHO, especially the A list. The 'A' list is "Do you know the syntax?", and that's about it. The B list introduces data structures, but the requirements aren't very difficult. You can look at their lists on the apcentral website, and it's almost a joke, imho.

  61. 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

  62. a major step for java? i think not. by intuit · · Score: 0

    this test (computer science A, our school didn't offer AB) was NOT a major step for java in my opinion.

    it was incredibly easy; at this level of programming, you might as well have known c++ and then just some of the changes. since this was the first year to have the exam in java, our teacher gave us a copy of the c++ exam from last year, and after explaining the minor differences such as between System.out.println() and cout, etc., it was apparent that at THIS level, we could do all of those questions and do equally well as in java.

    for instance, all that the free response required was as such:(hypothetically that is...in case there's some collegeboard people seeing this..:D) loops, if/else statements, single-dimension arrays, and basic knowledge of how to work with boolean logic and ArrayLists.

    is this a major step for java? it certainly is not. c++ is (in my opinion) easier to learn, and with that you can get acclimated to java in a week...at this level. at least that's how it was for me.

    --

    Don't even try to argue. It is NOT worth the while to go round the world to count the cats in Zanzibar.
  63. Yesterday sucked. by Anonymous Coward · · Score: 0

    I took the test yesterday and I think I did great. I took the test 2 years ago as well, when it was C++ and got a 4 (I took it again this year because i wanted to take an AP class that I knew I could pass and the teacher diddn't care if i took it again). sorry to anyone who thought it was hard, but you probably didn't have to take the AP stats test right after. I dont know who on the college board decides the schedule, but why cant they make AP stats the same day as like... AP studio art or AP basket weaving?

    I'm glad the new test is in java, mostly because i understand java better than C++ (dispite the fact that it tends to be a more confusing language).

  64. See, I didn't take an AP CompSci class by Lunacite · · Score: 1

    My parents thought "hey, he's good with computers" and signed me up for the test. So I show up with my minimal knowledge of C# (which is ever so close to java, I got lucky) and do what I feel was a fairly good job on the multiple choice. As for the free response.....whoever grades mine will have an easy time since the majority of my writing was comments to the grader. p.s Yeah, I know I'm an idiot for a) letting my parents sign me up for the test b) not canceling the test c) not studying/seeing what was on the test. Oh well, I was the only one in the city who took it.

  65. frankly, why are young people still doing CS? by Cryofan · · Score: 0, Troll

    As a CS major myself, I am amazed at the number of CS majors these days. Why bother? There are virtually NO entry level jobs for CS majors! There are some for the very experienced, but that is about it. THere are still some jobs for admins. THat would seem a more suitable goal.

    Come to think of it, why are so many people still wasting their good young years and mortgaging their future on getting a BA/BS? There is a huge oversupply of such people already.....

    Just goes to show you the power to propaganda and the power of inertia.

    --
    eat shiat and bark at the moon
    1. Re:frankly, why are young people still doing CS? by Anonymous Coward · · Score: 0

      India and China are each turning out about 10 times as many CS graduates as the US is. There is apparently no shortage of jobs in those countries.

  66. What do you use Forth for? by sdcharle · · Score: 1

    Not giving you a hard time here. I have a friend who swears Forth is the greatest thing ever, but I rarely hear of people using it.

    1. 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...

    2. Re:What do you use Forth for? by sdcharle · · Score: 1

      Thanks for the info. The guy I mentioned is really old school. The rare times I heard it mentioned had to do with embedded systems, and once a robot was involved. I'll have to tell him about OpenBIOS, but I bet he knows.

  67. I took the A and AB exams last year and the yr b4 by SnprBoB86 · · Score: 1

    ...and I found theme extreamly easy. These two AP courses could most certainly be combined into a single couse and still be completed well within a single school year with ample time to review and practice for the exam.

    Anyone with any kind of inherent talet for computers/programming could spend less than a month teaching themselves to program and still get a 5 (out of 5) on the exam after doing one practice exam and reviewing it for a day or two. I have seen non-computer-oriented people (some who don't even like math or science classes) ace the exam.

    I do not intend to insult anyone who can not handle the test, I mearly wish to point out that the exam tests ONLY the very basics of "how to program" and simple data structures.

    --
    http://brandonbloom.name
  68. Re:Language Doesn't Matter, but the Case Study Doe by Anonymous Coward · · Score: 0

    The MBCS was easy. Hell my friend and I did the exact same thing in class for the hell of it since we were bored.

    I'm not a morning person so I spent the first 1 hour the free response staring at all 4 questions trying to figure out what it was asking. After that I spent 15 minutes writing all the code.

    The harder part of the test was sitting there for the last 30 minutes trying to retain my sanity with nothing to do.

  69. My Own Impression by Kanpai · · Score: 1

    Firstly, the entire AP process is terrifying, because they relaly want to make sure that the test questions do not escape into the free world, because apparently it would throw everything into chaos. The tests are sealed, and requisite you to sign on the front that you took it on the exact date and time, and that you promise not to take the test from the room, as if we'd try, the guy running it was a nut.

    As for the test itself, it was fairly easy. The trickiest parts were the involved code questions about midway through the multiple choice, but we had plenty of scrap paper to work everything out. 40 multiple choice and 4 short answer, by the way. The short answer were very simple, and the only thing i had to wrack my brain for was remembering if casting a double as an int would throw and Arithmatic Exception for loss of precision.

    Otherwise, smooth sailing. One last thing i'd like to note, though, there was a question regarding hexidecimal on the test. It said, 100hex - 10hex = ?dec, and while i knew the answer, it seemed out of left field, and my computer teacher verified that it was not part of the subset. Does anyone know anything about this?

  70. What are we trying to do? by callipygian-showsyst · · Score: 0
    What are we trying to do? Raise a new generation of pedophiles? I personally wouldn't trust my son or daughter near anyone teaching Java!

    Why don't they base it on an open-standard language like C++ or C#, or a "academic" language like Smalltalk, Squeak, or MIX? That would be much better than supporting the pedophiles who support Java?

    1. Re:What are we trying to do? by Anonymous Coward · · Score: 0

      Good point! Lots of people don't know about the connection between Java and the pedophile industry.

  71. I took the C++ AP test out of spite by defile · · Score: 4, Funny

    The math department head at my high school said I had to take calculus in order to take the C++ class. I said calculus is a bullshit prerequisite for C++ (since, you know, C++ has nothing to do with calculus). She refused to make an exception for me.

    At the end of the year I demanded to be allowed to take the test to prove to her that the prerequisites were garbage and that the school was probably too clueless to teach C++ anyway. She couldn't refuse (the AP classes are not mandatory) and so I took the test, although she insisted that I reconsider and that I should take the classes and that I'm otherwise wasting everyone's time.

    It turns out that I was the only one in my entire school to show up for the test.

    I scored a 5 (the highest score). Came in and stapled that to her forehead.

    Spite: it's what's for dinner.

    1. Re:I took the C++ AP test out of spite by Anonymous Coward · · Score: 0

      wow.. Calculus?... smack your highschool's administration and request they change it to algebra or algebra 2. My school has algebra as a pre req. for the Comp Sci 1 & 2 class that is pre req. for the APCS class. The only pre req. for the APCS class is the Comp Sci 1 & 2 class. lets just say that basic algebra is plenty... and algebra 2 only helped when sorting and logarithms came into play. * I learned bout logarithms in APCS before I learned it in Algebra 2 :D!!..*

  72. that's stupid by Anonymous Coward · · Score: 1

    Is it just me or is this all completely backwards? You should have every right to talk about the exam you've just taken, it's the exam board which definitely should NOT have the privilege of preventing your freedom of speech, just because it can't be bothered to invent some new questions....

  73. Bad prescedent by mnmn · · Score: 2, Interesting

    I do not mean to bash Java, but I think it is wrong to push for a closed-source language which does not really compile into direct-to-hardware code. This does on one hand increase software portability, but its an enormous waste to run everything in Java, which is designed only for applications which must be completely portable.

    People developing 3D games, drivers or operating systems do not need Java, nor to embedded systems developers. C is considered God's language and is used to compile everything from 8-bit microcontroller TCPIP implementations to GUI toolkits. For its simplicity and ubiquitiousness, it should be taught as the primary language of choice, and C++ comes close to it.

    java simply locks everyone into Sun's grip (teaching them C# isnt much better either) and produces programmers who do not have a clear concept of how the source code is being compiled and run. It does make programs cheaper, code reusable and all kinds of hardware hosts for all Java software. However, once in a while you have to completely reimplement the code for a cleaner designs, like the kernel 2.6, like Apache 2.0, like BeOS. This is actually easier with C/C++ than with Java because C forces you to have a bird's eye view of the code.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    1. Re:Bad prescedent by Qwaniton · · Score: 2, Interesting

      Your post misses the point, but you also made some valid points.

      People developing OSes or 3D games don't need Java, nor want it.. The downfall of civilization started when OS coders stopped using C.

      C is far too advanced for your average high school. You may not think so, but it is. Java is a much simpler language for high schools than C. It's a great beginner language[1].

      The C++ AP did not go very far into C++[2]. For example, they never covered pointers. Rarely did you code your own classes. Most of the time, AP C++ revolved around the "AP classes", prewritten classes for the class. (I'm tonguetied.)

      [1] I still loathe Java like the plague.
      [2] C++ is a hideous language. OOP is a cult! C forever!

    2. Re:Bad prescedent by euxneks · · Score: 1

      The whole reason that Universities are teaching Java (at least this is what I've been told) is so that the computer scientists they are churning out understand the concepts, and not just the language. Apparently Java is a lot easier to learn and therefore you can spend more time on the concepts rather than the syntax or what not to do with the language. Java also has an _excellent_ documentation on absolutely _everything_ in the java API... Still, I agree with your points.

      --
      in girum imus nocte et consumimur igni
  74. Getting Through College w/o Math by gbulmash · · Score: 1
    I remember taking it in 1985 (Pascal). We had a bunch of Sperry PC clones that had just been donated to the school computer lab and my dad bought me a Pascal package for my Commodore 64 so I could do my homework without having to compete for lab time after school.

    At the first university I went to, I placed out of the math requirement by exam. After taking time off and then going to a community college, I was excused from math because of my high SAT scores. When I was finally ready to graduate from a university, with a Bachelor of Arts degree, my 9 year old AP Comp Sci credit satisfied the math requirement.

    - Greg

  75. Java AP Test by kraiger · · Score: 1

    It actually wasn't too shabby... Not too difficult for the most part, slightly annoying in the fact that things like the Marine Case Study were on there, and personally I think it's the devil :P

  76. I took it by Rii · · Score: 1

    I took the test at an Orange County, CA high school. We had to be in the room from 8am to 12 noon. There were 40 multiple choice questions and 4 free-response ones. The test seemed to stress 1-dimensional arrays, ArrayLists, and the marine biology case study. (MBCS) The MBCS was a program that simulated various fish in a two-dimensional array. The source code for this program was included, and it had helpful //comments throughout. The free-response was java coding, and each answer was only a half-page long. Real easy if you studied, IMO. Note: I took the Comp Sci A test, not AB. A = 1 semester of college, AB = 2.

  77. Agreed by Anonymous Coward · · Score: 0

    Agreed. It just wasn't funny. I cut it down.

  78. 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

    1. Re:not that it really matters by Rallion · · Score: 1

      At RIT (which uses a quarter system -- fall, winter, spring, [summer] ) as a CS major my 5 on the AP CS AB test saved me one class. Instead of taking CS1/2/3, I just had to take Accelerated CS1/2, which cover the same things but much more quickly.

      Not sure if that agrees or disagrees with you, really, just providing a practical example.

    2. Re:not that it really matters by Anonymous Coward · · Score: 0

      Here in the UC system, AP credits are effectively worth jack shit. If you're going a science route, it could be useful to get some credits by taking History, Econ or English AP's, but most science and math credits are worth nothing. You can get unrestricted elective credit or maybe an equivilant class (which you don't need anyways).

      I'm not saying the AP classes are useless, they're great. Don't expect to get much "credit" from them.

  79. I took it... by cartzworth · · Score: 1

    ...and I'll be honest that I thought it was pretty difficult. I guess i'll let you all know how I did when i get my scores in August.

    I got an A- overall in the course, too.

    1. Re:I took it... by cartzworth · · Score: 1

      as a side note, Big-Oh notation can suck me

    2. Re:I took it... by yuriismaster · · Score: 0

      Well unfortunately, Big Oh notation is what gets you places in this world. Sure, you can write a simple sorting algorithm (bubble sort, anyone) that'll work, but it'll make your program, database, or whatever you're running slow.

      See, it's the knowledge of when to use a tree, heap, linked list, arraylist, hashmap, and other such implememnts of destruction and how to operate such tools efficiently that will get you a job.

      Sure, in Java, you could circumevent all sorting routines by using:
      list = new ArrayList(new SortedList(list));

      but that doesnt teach you squat. Now go learn you some Big-Oh!

  80. 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.

  81. I took the AP CS AB test on tuesday by unuselessj · · Score: 1

    I am currently a junior in florida. Last year I was the only sophomore to take the AP CS A test. Of course I found that test really easy. This year's AB test took me most of the time to complete. I finished the multiple choice in 45 minutes and then went back over it and checked a couple things a few dozen times. Overall the exam wasn't so bad. There are lot of people in my class who didn't come close to finishing the exam but that is mainly because of the teacher of the class.

  82. Tracing by Anonymous Coward · · Score: 0

    The worst part about the test was the emphasis they put on tracing recursive code. One or two problems should be enough to show that you get the concept! It's really a pain to do, especially when there's a lot of state to keep track of. I question its usefulness.

    1. Re:Tracing by Marowana · · Score: 1

      Yea, I've had just about enough of, what does a call to mystery(6) return? I don't give a damn!

  83. Sorta easy by AKSnoopy88 · · Score: 1

    If my teacher had actually taught us the stuff better i think i woulda done well on it. Not that we didn't learn it. Just that it wasn't taught as well as it coulda been. But the test was pretty simple especially the multiple choice part.

  84. Huge disconnect by Viking+Coder · · Score: 3, Insightful

    The huge disconnect here, in my honest opinion, is that the vast majority of Computer Science students are only going after a Computer Science degree because it's the only way to get a job as a computer programmer - but the universities are all treating Computer Science as some form of abstract mathematics. Heck, some universities have Computer Science as a Liberal Arts degree.

    Real computer programmers need to understand pointers. Java does not teach you how to effectively use pointers. In fact, it makes it harder to learn pointers, because you learn such bad habits.

    Garbage collection is nice, but the majority of computer programmers don't have access to it. Universities should offer Computer Science and (Applied?) Computer Programming degrees, and the AP tests should similarly be targeted for Computer Science (Java, maybe) and Computer Programming (C++, definitely - with exposure to other things as well; Java, Python, Scheme, Lisp, Perl, whatever.)

    --
    Education is the silver bullet.
    1. Re:Huge disconnect by Anonymous Coward · · Score: 0
      I think that's a load of hog wash. Real programmers learn on their own. Schools only provide the hardware, but the person has to have innate ability. 50% of all programmers working in the field are barely getting the job done or are doing it poorly.

      All of the brightest and best programmers that I know working today taught themselves assembly before they were 16 and were programming in 3 languages by 18. One person wrote a compiler with his father and sold it by 17. Most others just plain old suck. I'm no where near that good and I've never taken a CS class. I learned it by myself reading code. You either get it, or you don't. It's just that simple. Teaching someone to think about pointers is counter intuitive to my experience. A person can visualize it or they don't. Java has nothing to do with that.

    2. Re:Huge disconnect by Viking+Coder · · Score: 3, Insightful

      Okay, so you're talking about 1/1000th of the programmers out there.

      I'm talking about the other 999. You do harm to these people's professional computer programming careers by teaching them Java before you teach them C++.

      You either get it, or you don't. It's just that simple.

      So, you've never learned anything in school, and you're making the blanket declaration that school is useless for all other people as well? I think that's the load of hog wash.

      --
      Education is the silver bullet.
    3. Re:Huge disconnect by Anonymous Coward · · Score: 0
      well I hate to say it, but teachers can only provide information. the student has to want to grasp it and be ready to understand it. There are somethings some people will never understand. It's just that simple. There are things I know I'll never understand and I know I don't have the motivation to really try.

      How many times have you tried to teach someone who was a programmer by trade, but didn't understand basic principles. If you've ever tried for months to teach someone only to realize they just weren't going to get it, you would know the statement is a horrible generalization, but it has truth to it. Generalizations are bad I admit, but I'm in the unfornately situation of working with a bunch of VB programmers who believe memory is limitless. They also run around telling others not to use views because they are bad, only to realize MS, Oracle and IBM all recommend using materialized/indexed views when applicable.

    4. Re:Huge disconnect by quantum+bit · · Score: 2, Insightful

      I'm talking about the other 999. You do harm to these people's professional computer programming careers by teaching them Java before you teach them C++.

      Hear, hear!

      I honestly think the first language anybody should learn is assembly. Architecture doesn't really matter.

      I'm not joking.

      Knowing HOW and WHY higher-level languages work as they do is an invaluable asset that can make anybody's code a lot cleaner and more efficient.

      I see code all the time that was obviously written by paper CS-majors who have no clue what the hardware is doing. It makes me really really glad that I learned assembly before C/C++/Java/etc. Had to unlearn some Basic first, but that wasn't too terribly difficult as it is (was) mostly procedural anyway.

      I'm not saying to do stupid stuff like trying to out-guess the optimizer (use for(;;) instead of while(1)). I mean things like knowing that insane levels of recursion are likely to cause problems for the stack and some things can be done more efficiently procedurally. It can be invaluable asset to producing good code.

    5. Re:Huge disconnect by Viking+Coder · · Score: 1

      Yeah, it's a fairly common opinion, and I can't really argue against it. For one, it gives you great insight into what could possibly be going wrong with the code you're debugging when it turns out that you've got a corrupted stack, or something else that's "not nice" from a high-level language perspective.

      But I must admit, I am one of the walking dead; I learned BASIC, then Pascal, (then COBOL, ha!), then C, C++, etc. I only really learned assembly in school, and that doesn't count.

      A fairly obvious indication that schools are churning out people with no actual computer programming experience is the fact that there are no courses in such real-world topics as "Adding Code To A Monolithic Program That You Don't Really Understand," "Learning About A Problem Domain," "How to Merge Branches of Code," and my personal favorite, "DEBUGGING."

      --
      Education is the silver bullet.
    6. Re:Huge disconnect by doktor-hladnjak · · Score: 1
      I remember reading (I think) the ACM Curriculum guidelines a while back. While this approach is mentioned as one possibility, I don't know of any school that actually does it (although it seems like there must be a couple). The other possibilites were starting an imperative language (the most common choice) and starting with a functional language (classes based on ML or Scheme, ala MIT's 6.001).

      Personally, I think the imperative approach is probably the most flawed of the three. Educational studies have shown that students end up spending way more time futzing with for loop conditions and array indices than actually learning how to problem solve. By the end of a semester class, they still can't write anything interesting and are essentially still working on boring toy programs.

      Starting out with a functional language is interesting though, because since they are so high level, you really can concentrate on teaching fundamental problem solving. Also, it's possible to expose students to interesting fields of actual Computer Science (not just programming).

      While I think it's critical that students understand what's going on under the hood of high-level languages, the big problem I see with starting out with assembly is that it would be difficult to keep things interesting for most students. Intro classes are critical for getting a student interested in further study and frankly, an assembly class (while important and useful) is just not representative of the majority of what makes Computer Science as a whole interesting to study. I'd worry you'd lose students who would be good at and interested in the more common topics in Computer Science, while simultaneously retaining students interested in lower-level topics, who would several classes later realize that's not at all what CS is usually about.

      Furthermore, I doubt doing assembly in the first class or doing it in the last class of 3 semester intro sequence would really make such a huge difference to how somebody is going to program after the sequence has been completed. The important thing is that students have a class relatively early, where they do get to figure out that it isn't magic that makes a function call in a higher-level language work. The point more is that you should be glad you actually learned assembly and paid attention, not that you learned it first.

      I also question the wisdom (of the grandparent post) of having students learn C++ before having them learn Java. I have personally witnessed the following two scenarios as a teaching assistant for the second semester class:

      1) First semester students learned Scheme (functional). In the second semester, they learned data structures and algorithms through Java.

      2) First semester students learned ML (functional). In the second semester, they learned data structures and algorithms through C++.

      The first group of students finished with an understanding of when to use a given data structure, as well as a good understanding of how to use OOP (although their understanding of OO design was pretty shaky I have to admit). The second group ended up much worse in my opinion. The students completely flailed around with C++, especially with things like references, pointers, and memory management (segfault central). Because of the additional complexity of C++, the instructor had to give more dumbed down assignments, so that they could be finished in a reasonable amount of time. In the end, this resulted in the students performing very poorly on the final exam, where the data structures and algorithms they were supposed to have learned were tested. For the most part the students that used Java could actually implement the data structures and algorithms in real code. The students in the second group could only regurgitate stuff they had read and the majority could not implement anything in C++ at all. A lot of them would get caught up in C++ details and never actually even finish coding the data structure. In the end, I think if those students had i

    7. Re:Huge disconnect by Viking+Coder · · Score: 1

      Actually, I've taught several people who were programmers by trade, but didn't understand basic principles. Several. And I've actually succeeded in teaching them. I've never failed. It takes time; you can't do it by "teaching" someone while you're looking over their shoulder commenting on why their code crashed. Now, I really only taught them enough for them to be competent at their job, and to know how to ask for help when they recognized that they needed it. But that should be enough. If all of your co-workers need to be at least as good a programmer as you, in order for things to go well at your job, then either 1) you're the worst programmer there (just kidding), or 2) you haven't divided the responsibilities in the code and in your jobs well enough to Cover Your Ass. *shrug* I recognize this isn't necessarily true for all problems in all languages, but I find generally that there are a few things in a large program that really, really matter, a larger set of things that matter, and a huge set of things that don't really matter. If these people who don't understand limited memory are working on the things that really, really matter, then you're screwed. But I suspect that they're working on things that don't really matter, and that you're sweating the small stuff. Crashes happen. People will recklessly use memory from time to time. Deal with it and move on. *shrug* I mean, yeah, it's frustrating, and it'd be better if they'd learn to not screw things up...

      I think the best approach is to have a large body of examplar "good code" for someone to try to learn from, and rigorous Fagan-style code inspections (inspections for everyone, so the knowledge is shared - not just inspections for the "poor" code, just so you can criticize).

      And if you employ people who don't "want to grasp" that memory is limited, and the other policies you feel are so important, then you should fire them and hire a qualified coder. Or at the very least, demonstrate to them that their job is dependant upon demonstrating mastery of those topics.

      And if you're not in a position to hire and fire people, you should write up a coding standard that explains how to do the day-to-day work that these people do, and convince your boss that the standard should be taught and enforced. Then, go for code inspections, and keep track of the defects that are found. Report them to your boss. *shrug*

      Look, you either care about the outcome, or you don't. It sounds like you do care, but it sounds like you've spent months trying to teach, but you keep doing it the same way again and again. The definition of insanity is repeating the same behavior again and again, but expecting different results. You need to try something new.

      And, like my signature says, I think that education is the silver bullet. Both for you (find better ways to communicate with your boss and co-workers, and get ideas about how to formalize how code is written so that bad code happens less often), and for your co-workers (learn how to write good VB code, so these problems happen less often), and maybe also for your boss (to understand why it's so smart to better train your workforce, and the benefits of consistently producing good code).

      If you've done everything you can to learn more about how to achieve what you want, and to try to educate your boss and co-workers, and it's still frustrating you this much - you should try to find a better job, where the environment will be more conducive to writing the quality of code that you want to work with.

      --
      Education is the silver bullet.
  85. Re:Java has become blah blah blah by diesel66 · · Score: 1

    "...and many have never seen Pascal."

    I *wish* I had never seen Pascal.

    Or COBOL, for that matter.

    --



    eleven plus two / twelve plus one
  86. My school never has programming classes. by froschmann · · Score: 1

    The buissness teachers at my high school say that it is a waste of budget because only 3 out of 2000 people will program, but everyone has to make webpages and type. They think we only need keyboarding classes, HTML, and Cisco. Next year they are canceling Cisco due to lack of participation. I wish I could take AP computer classes. Well, I suppose there is always college.

    1. Re:My school never has programming classes. by Anonymous Coward · · Score: 0

      Silly teachers. Programming is about thinking, planning and problem solving. Programming should be a required course for everyone.

  87. Why TCB.. by vsage3 · · Score: 1

    C++ at least had some value to it beyond dang applets. Having taken the Comp AB test last year when it was C++ based I would say a majority of the test would not translate over this year. A lot of my friends who took it this year said it was far too easy (this coming from people who got 2's last year). For example, C++ forces one to understand the construction of a binary tree to parse data, but Java has built-in commands such as those for linked lists, so what are kids actually learning? Java is, in a word, cheap. Sorry to all those who think it has some merit beyond being way too user-friendly.

  88. General Comments by Anonymous Coward · · Score: 0

    The exam has been in C++ for a good bit longer than 1 year (I took it two years ago). I would put much money on the fact that the difficulty of the exam has not change at all, especially since most of the code you have to actually write might as well be in quasicode. The test isn't particularly about the language; there's a decent amount of coverage of algorithm efficiency, data structures, searches and sorts, and object orientation that can be applied to a whole host of languages.

  89. How do they enforce this? by mark-t · · Score: 0

    "Legal action"??? Come on! A person just out of college isn't going to be worth enough money to sue.

    1. Re:How do they enforce this? by Greventls · · Score: 1

      I'm sure they can scrounge up $2K, unless someone else got it from them first...

  90. Good thing for the EU and other countries by Anonymous Coward · · Score: 1, Insightful

    Now that poor US students take their CS exams using Java we can count on more and more serious programming jobs outsourced to other countries where people still learn programming through languages that actually teach something about how systems work.

    There's no such thing as an object oriented hardware architecture; teaching programming to young students with OO languages is like putting a wall between their brain and decades of still valid knowledge on the way computer machines work.

    OO is useful at prototipying and getting the work done +after+ you have enough knowledge to avoid shooting yourself in the foot.

    1. Re:Good thing for the EU and other countries by Anonymous Coward · · Score: 0

      there are no jobs in your countries

  91. Re:Since when... by Anonymous Coward · · Score: 0

    Honestly, does anyone else have the time?

    ZINGER accomplished!

  92. AP credits don't mean anything by Zabu · · Score: 1

    When I took the AP CS exam back in the day, I got a 5, two years later in college I discovered that it didn't count for any CS requirements, but I could use it towards a free elective. Same went for calculus as well.

    Well that 8 credits only cost me about $150, alot better than the $1600 I would pay for them now.

    On a side note, who here had the BigInt case study?

    --
    It's all good.
    1. Re:AP credits don't mean anything by sk1tch · · Score: 2, Insightful

      Hmm I'm walking into Stanford this fall with about 20 credits from APsthat count toward my major, including last year's comp sci AB getting me out of a cs101 class, 2 years of calculus testing me into multivar, and cheesy freshmen physics out of the way. It varies wildly from school to school.

      --

      when I find myself you'll be the first to know.
    2. Re:AP credits don't mean anything by Zabu · · Score: 1

      Well if they all transfer, more power to you, take with salt because I was told the same thing by the AP people, and it is simply not the case.
      The only thing it helped me with was making my freshman year cake. I had already took three of the classes as AP in highschool, which naturally lead to me slacking off.

      They will probably count towards credits, but you may still have to take the freshmen classes.

      --
      It's all good.
    3. Re:AP credits don't mean anything by Rallion · · Score: 2, Insightful

      I came into school with over a full year of credit from my six AP tests. That's a $20k net savings.

      Or $30k if I decide to get a MS (which would take four years, instead of the usual five at which point my scholarships would dry up).

  93. New language... so what! by Anonymous Coward · · Score: 0
    For a REAL change, consider changing the test from digital computing to
    • analog
    • quantum
    • biological
  94. GRE Subject Test by Anonymous Coward · · Score: 0

    Speaking of computer science tests, the GRE Computer Science Subject Test is extremely difficult! At least they didn't ask to implement malloc().

  95. Re:Language Doesn't Matter, but the Case Study Doe by Anonymous Coward · · Score: 0

    It wasn't just you, I considered the free responce questions quite... well.. not worded clearly at all.. The objectives wern't clearly spelled out anywhere...

  96. It DOES test concepts over implementation details by iReflect · · Score: 1

    A lot of people are pointing out that concepts should be tested, not implementation details. Keep in mind that these tests are graded out of 5 based on whether the marker is convinced you know your stuff. Those markers are looking for evidence of an overall understanding of the concepts, not implementation details.

    I wrote the AP CS exam two years ago. I was required to write and analyze C++ code, a language I had never used before (although I knew several others quite well). I didn't even know the basic syntactical structure. However, by looking at the various code snippits throughout the test booklet, I was able to get by. I'm sure my answers were riddled with implementation errors, but that apparently didn't matter to the marker who gave me 4 out of 5.

    I should point out that the reason I was so horribly underprepared was that I had invested no time, my school footed the bill, and I didn't expect to have a chance at passing (I thought it'd be way over my head). It was sure nice to get a University credit, though!

  97. Horribly easy class by JNighthawk · · Score: 1

    I'll admit I don't know Java or much about it, but I did take AP Comp Sci last year (when it was C++) and I took the harder AP Test (AB I think). Now, let me explain that I could have friggin taken a two hour nap and still gotten a 5 on the test (I did get a 5). The entire class was a breeze, but I got a C avg. in it because I spent the time helping the other students. Our teacher wasn't too good with C++ and I was, even back then, a much better coder than her. The class never even got into Win32 programming or even something as simple as using the mouse in a program! I had to friggin teach the other kids how to pause a program, how to delay and how to use a damn pointer! The class was a joke and I knew pretty much everything that was gonna be taught. What I didn't know, the sort and search methods, can easily be found online and adapted to many different languages. *sigh* Sorry for ranting but I just cannot express my disillusionment in computer science education. I don't even know if I should bother going to college for Computer Science now. Maybe I'll post an "Ask Slashdot" on what people recommend.

    --
    Wheel in the sky keeps on turnin'.
  98. Impressions of the A exam. by lostchicken · · Score: 1

    The first page of the appendex book was an excellent idea. It was a cheat sheet of the various functions needed in the rest of the test, things you'd have if you were actually writing code.

    The other problem I had was that you had to reuse implemented features in the case study, they'd count off if you didn't use the things they gave you. However, for one part I couldn't find any way to reuse code. I wrote an elegant algorithm that would work, but they're gonna count off because I didn't do it like they wanted it done.

    Can anybody tell me how they did it? (post anonymously, though)

    --
    -twb
    1. Re:Impressions of the A exam. by tuber · · Score: 1
      im assuming this was the one that went something like:
      if (!eat())

      super.move();

    2. Re:Impressions of the A exam. by tuber · · Score: 1

      ahh shit sry bout the bad formatting... u get the idea

    3. Re:Impressions of the A exam. by lostchicken · · Score: 1

      I had to find empty spaces in the environment, and that was the one I found tricky. It was easy to do, but what functions could I use other than things in the environment class?

      --
      -twb
    4. Re:Impressions of the A exam. by tuber · · Score: 1

      i didnt get that question but i assume you'd rock the isEmpty() method, i assume that satisfies "code reuse".

    5. Re:Impressions of the A exam. by lostchicken · · Score: 1

      yeah, that's what I used. I just didn't think that would actually count as code reuse.

      --
      -twb
    6. Re:Impressions of the A exam. by Capt_Troy · · Score: 1

      It's kind of ironic that you lose points in a Computer Science AP Exam for reusing code.

  99. The exam was... by kchoboter · · Score: 1

    not bad. The MC was littered with annoying recursion questions that take way too long to trace through. And I hate those I, II, III questions, they're a pain in the ass.
    I thought the long answer was really, really easy. The Case Study question was like copying out of the appendix. The hardest thing was a bit of Binary Tree Functions, but even that was a standard algorithm (insert).

    And to comment on what someone else said earlier, that there should be more less focus on implementation. There is in a way, methods that you don't need are encapsulated and you only need to worry about what you have to write.

    3 AP exams down, 3 to go

    --
    4B4556494E
  100. Sadly enough, the test was malformed by yuriismaster · · Score: 0

    I took the test yesterday, and with a 102.5 degree fever, no less. It was all and all a basic generalized java-oriented test. The AB exam had some more complex questions, mainly tracing some recursive methods, but the thing that really made me laugh about the test was that in the forbidden multiple-choice questions, 2 of them had invalid method headers! I looked them over and over and over again to make sure my fever was screwing around with me, but lo and behold, those 2 unnamed questions did in fact have illegal method headers... you think that all the hype built around this test would have made them, you know, proofread the thing?

    1. Re:Sadly enough, the test was malformed by Marowana · · Score: 1

      I found one of the spelling errors to be particularly humorous, the "Matrine Biology Simulation". Yes, they put that t there on the test.

    2. Re:Sadly enough, the test was malformed by yuriismaster · · Score: 0
      I saw that one too, but I'm talking about the
      public static generatePopulation
      with no return type defined and the 'constructor' written as follows:

      public void SlowFish(Environment env, Location loc, double prob)

      Hey, why are there some CollegeBoard helicopters flying in... *muffled scream*
  101. woa... man! that would be sooo gooovy! by NumbThumb · · Score: 1

    so let's go and get a.... wait... what where we talking about?

    --
    I have discovered a truly remarkable sig which this 120 chars is too small to contain.
  102. Re:Since when... by Charles+Dart · · Score: 2, Funny

    Oh, since, well let me think...SINCE FOREVER

    shouldn't that have been:

    Oh, since, well let me think...SINCE 4 EVAR!!! :0

  103. I took the last C++ exam... by Anonymous Coward · · Score: 0

    I took the test last year in C++, as a junior, and somehow managed a 5 even though my teacher didn't tell us about the case study until the day before the test.

    I know some people who took the test this year, here are some of their responses:

    *got raped by CS AP Exam*
    --------------------
    okay, so after the multiple choice was taken up robin realized she didn't bubble in her answers

    then.... sean like farted or something in the middle of the exam and me and robin both just started cracking up, and we almost got our tests taken up and we got a huge lecture
    -------------------

    There were about 15 students there from my school, and about 8 from another school in my district. After about 45 minutes into the free response, 10 students from my school had given up and were sleeping or drawing pictures in their response books, while the other school's students were still trying hard to finish the test.

    Shows you how well my teacher prepared us.

  104. i took them both by dmitrygr · · Score: 1

    As a person who took both (last and this year, for C++ and java respectively) I cvan tell you that java, they tolds us, was going to be much harder exam, but it was much easier. Amazindly easied. written took about 45 minutes oc complete on avergae in my class, and we were given 1 hour and 45 minutes. multiple choice took all but the last 20 minutes for us all. It was extremely easy. A joke, thats what it was!

    --
    -------
    1. Enjoy your job
    2. Make lots of money
    3. Work within the law

    Choose any two.
    1. Re:i took them both by dmitrygr · · Score: 1

      and sorry for the spellling, typing on my palm.

      --
      -------
      1. Enjoy your job
      2. Make lots of money
      3. Work within the law

      Choose any two.
  105. Are Pointers malloc() and free() Computer Science? by Soong · · Score: 4, Interesting

    Because people sure aren't learning them from Java. C hackers are getting harder to find.

    I just had a thought. It seems to me that the old dichotomy of CS, Systems and Theory, have spawned a bastard child: Vocational Programming. It's probably a natural progression as the field matures. This third class of people in the CS world don't understand either end of the old spectrum well enough to fit in. Java might just be the perfect language for Vocational Programmers.

    Now the questions are: Do we like this direction? Is it the right direction? What's broken, what would be better?

    --
    Start Running Better Polls
  106. B is supposed to be a full semester? by Max_Abernethy · · Score: 0

    I took the AB version - it wasn't very difficult. What struck me as really funny was that, although the "B" part is supposed to be a full semester of class, it was very little - we had to know how to "design" classes, and a very small amount of DS&A (hash tables, binary trees, and qsort, but not a 2-3-4 tree, graph, or path-finding algorithm to be found). According to the policy of the school that I'm going to I'll be able to skip a year of intro CS courses if I get a 5, but I'll want to check the curriculum and make sure the AP was actually as comprehensive as it's supposed to be before jumping ahead.

  107. I took it in Pascal... by Soong · · Score: 1

    ...in 1997, and haven't touched the language since. My C, C++, Java, perl, etc. haven't been hurt by the experience. If two months from now, Java isn't the right language for students who just took the test, then they'll use something else. No tradgedy.

    --
    Start Running Better Polls
  108. I'm sorry, I don't do impressions by Anonymous Coward · · Score: 0
    ...quote from Airplane (the movie).

    I just can't watch that movie enough...

  109. Programming !=, er, isn't Computer Science by The+Prognosticator · · Score: 5, Insightful

    Let's not confuse programming -- the practice of using a computer language to do one's bidding -- with computer science -- the more generic, language agnostic study of computers. That's why the exam is called AP COMPUTER SCIENCE and not AP Programming. I wouldn't say that the use of Java on the exam is a great boom for Java per say, just a recognition that it has many features that are useful, and not available with previouis languages in this exam setting.

    I think this misconception causes many students to inappropriately major in CS in college because "they like programming", or "they like computers". And some of them, from my experince at engineering school, end up in other majors as a result. Not all though, but enough for me to feel I should comment...

  110. I took it yesterday by Marowana · · Score: 1

    It's the same exact length as the C++ test so you do get the same exact amount of time, 3 hours. I found it to be exactly what I expected it to be which isn't suprising because we had all spent the entire year preparing for a single test. I'm not allowed to discuss the multiple choice, but there was this one free response question that was a bitch. Traverse a binary tree without recursion, meaning using a stack. C'mon now, that's just garbage.

  111. 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.

  112. Different Test. by seanbry · · Score: 1

    One thing should be noted, there are CS AP A and AP AB.
    The AB is much much different from the A test.
    It goes into data structures and things like that.

    The test had some sick obsession with recurson, infact alot of the code was put in a way to obfuscate the main purpose to require a desk checking approach. I was surprised only 2 questions (not exact but close to) involved the Marine Bio case study.

  113. Language to test in by wonkavader · · Score: 2, Insightful

    A class on CS (as opposed to programming in java) ought to define the laguage in two pages at the front of the test.

    Anyone familiar with the concepts of programming out to be able to learn a simple language for the test from that.

    I suppose that the language could vary, every few pages. The first one could be like basic, the last like smalltalk.

    But I suppose teaching concepts to high-schoolers is a lot harder than teaching very concrete stuff.

  114. CS AP test: 1984: Pascal was new and scary by Riventree · · Score: 2, Interesting
    As a member of the class of 1984 at TOHS, I'd done BASIC and assembly (6502 on Apple, 8080 on a CP/M machine) but only had about 1/2 a semester on Pascal when the test came, and I'd only seen the pointer notation the week before. I knew what pointers were at the assembly language level, but there was some abstraction in the Pascal versions that made em different.

    When I got there (the test wasn't offered on campus, for low-subscriber tests you had to go to another location) there were no other students there, and the proctor didn't even know that Computer Science was being offered that day. They dug around in the documents, and out pops the one lone copy of the test that the AP folks had mailed out. Turns out I was the first student in all three counties to ever take the test. (This is in a middle-class southern-california area... there'd be dozens and dozens taking it today)

    A big shout out to Gary Talbot of TOHS for teaching CS well enough in generalities that I got enough partial credit on the pointer stuff to earn a 3. YOU ROCK MR T!

  115. Man that was hilarious(n/t) by Anonymous Coward · · Score: 0

    no damn text slashdot!

  116. You Missed One Detail. by HopeOS · · Score: 5, Interesting

    C, C++, and ASM are low-level languages.

    COBOL, Java, and C# are high-level languages.

    High-level languages come and go because they are written to solve the problem of the decade. For COBOL it was record management and batch computation. For Java and C#, it's applets, serverlets, processlets, and sandboxed code. What will tomorrow bring?

    By contrast, C is still solving the problem of the century -- how to write portable assembly, and assembly is still solving the general problem of computing -- how to get the most processing for the least memory and time. Java and C# can't touch this, nor was this the purpose for which they were designed.

    -Hope

    1. Re:You Missed One Detail. by Anonymous Coward · · Score: 0

      My god, this is informative?

      C and C++ are high-level languages. The only low-level languages are Assembly and machine language.

      Get your facts straight.

    2. Re:You Missed One Detail. by xYoni69x · · Score: 3, Insightful

      C is high-level, but its "level" is very low among the high level languages.
      You can write C code and practically envision the asm that it will compile into.
      (As the grandparent poster put it, C is "portable assembly".)

      Same with C++, but a little less so.

      I don't think it's wrong to classify C as a low-level language, especially when comparing it to Java and C#.


      /FFP (first Firefox post)

      --
      void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
    3. Re:You Missed One Detail. by RzUpAnmsCwrds · · Score: 1

      "Java and C# can't touch this, nor was this the purpose for which they were designed."

      That isn't necessarily so. Microsoft is attempting to replace the Win32 API with the .NET CLR. The .NET CLR runs a VM-bytecode (similar to Java). Microsoft is pushing it as the future of their operating system.

      There is no reason why a JIT-compiled language cannot meet or even exceed the performance of a precompiled language. Although C and C++ may be the languages of choice today, they may not be tomorrow.

      Java has already been used to develop the operating system for mobile devices like the Danger Hiptop. It has become the standard for programming on cellular telephones and is uickly gaining support on PDAs. As of yet, Java has had limited success on the desktop, but thanks to faster computers and better runtimes, this may change.

      Writing off Java and C# as "passing languages" is a bad idea. Programmers (and users) are beginning to value security and stability above raw performance. The performance of such programs is often "good enough" that it is not an issue for most users.

      By your logic, FORTRAN should outlast C. FORTRAN is used extensively by scientific and technical applications because it optimizes better than C (and certainly better than C++).

    4. Re:You Missed One Detail. by Anonymous Coward · · Score: 0

      You're right that C is technically a high level language but that it's really only a step above assembly.

      C++ is a different matter entirely. C++ is a high level language through and through. It's not interpreted like Java, but it's about as high as that, C#, etc. It shares syntax with C, and you can port basic C code into C++ without too much of a problem (unless you're doing pointer arithmetic, in which C++ compliers may bitch at you for doing), but it's got a lot of high level stuff like try/catch/throw inheritance, namespaces, etc. that make it not low at all.

      In response to the post above, COBOL is, from what I've seen of it, pretty low too, but it may just be because the syntax reminds me of asm. It definitely isn't as high as C++ or Java though.

    5. Re:You Missed One Detail. by HopeOS · · Score: 1
      With respect to Microsofts CLR-based Win32API, all I can say is that they are welcome to try. I do not think they will be successful though, particularly when their performance falls behind their competitors.

      Under no circumstances can JIT-compiled code outperform a tightly-optimized C implementation. When you've squeezed the last drop of performance out of your CLR code, there will still be plenty of room left to squeeze in C. Likewise, when both are as tight as they can go, there will still be room left to optimize in assembly.

      Java and C# provide language features that require more assembly instructions to complete. Bounds checking alone will do this, particularly in a tight loop. This is not a problem that needs to be resolved; Java was not designed to compete with C in speed. Tight loops that are performance sensitive should be optimizable at a level finer than what Java can provide, regardless of what the JIT compiler is doing. If you are not absolutely certain of this, compare the assembly for this C code and any JIT-compiled assembly code in Java:

      int i,b=0,a[100];
      void initialize(int*);
      void print(int);
      int main(void) {
      initialize(a);
      for (i=0; i<100; ++i) b += a[i];
      print(b);
      return 0; }

      You will find that no matter how tight your Java code is, the generated assembly will never reach this:

      00000000 <main>:
      0: push %ebp
      1: mov %esp,%ebp
      3: sub $0x8,%esp
      6: and $0xfffffff0,%esp
      9: sub $0xc,%esp
      c: push $0x0
      11: call 12 <main+0x12>
      16: xor %eax,%eax
      18: movl $0x0,0x0
      22: add $0x10,%esp
      25: lea 0x0(%esi),%esi
      28: mov 0x0(,%eax,4),%edx
      2f: inc %eax
      30: add 0x0,%edx
      36: cmp $0x63,%eax
      39: mov %edx,0x0
      3f: mov %eax,0x0
      44: jle 28 <main+0x28>
      46: sub $0xc,%esp
      49: push %edx
      4a: call 4b <main+0x4b>
      4f: xor %eax,%eax
      51: leave
      52: ret

      24 operations. That's compiled with gcc with -O2 optimization. Unroll the loop, and you'll go even faster. Discard the stack frame and use a char instead of an int for the index, and the code will be even shorter.

      The byte code necessary to represent it may be smaller, but the assembly code will be much larger, may even involve more function calls, and even if completely inlined, would require at least one additional comparison and branch operation. Depending on how exceptions are implemented, it may also require setting up and tearing down an exception handler. It can't win, because at the very least it will be two operations longer than the equivalent C assembly.

      I am happy that Java is finding a home in these devices, but these devices are just the same applets that I described previously. What is the underlying operating system written in? What is the underlying Java implementation implemented in? Again, how well will Java address the problem of the next decade?

      I didn't call them "passing languages;" I would however refer to them as niche languages. Like Lisp, Ada, and FORTRAN, they cover certain problem spaces. Just about any programming problem can be implemented in these languages with the associated penalties for specific language features.

      FORTRAN rocks for computation, but you can still beat it in assembly. The point is, you don't want to; it does a good enough job. More importantly, FORTRAN will not outperform C in non-computational implementations. At the best, it can achieve equivalent speeds. Per the example above, FORTRAN would probably unroll the entire loop, reorder the operations to keep the pipelines full, and employ multiple registers so the pipelines can work in parallel. There may even be a single operation that will perform the whole summation in a shot. FORTRAN likes that stuff. C won't go that extra mile for you because optimizing numeric computation is not what C was designed for.

      So to answer yo

    6. Re:You Missed One Detail. by HopeOS · · Score: 1

      Actually, I would assert that COBOL is a much higher level language than either C++ or Java. "High level" does not mean complex or feature rich; it means that the level of abstraction from assembly language is greater.

      COBOL is about as abstracted from the final assembly code as PHP, Python, or Perl. The only thing more abstract would be languages like SQL.

      With Java, there is a closer relationship between the objects that are declared and the assembly that will be necessary to implement them. For C++ that correlation is nearly one-to-one with C except for the minor additions like calling constructors and deconstructors, maintaining the exception stack, etc. These are not complicated things to implement which is why I don't consider C++ especially higher than C.

      C++ is necessarily lower than Java since it does not provide string classes, garbage collection, and automatic bounds checking. Also, as far as I'm concerned, namespaces do not add anything to the "level" of the language; it's merely a feature. The code compiles to the same assembly whether you use them or not.

      -Hope

  117. Java AP by theSkyjet · · Score: 1

    I honestly thought it was one of the easiest CompSci tests I've taken thus far. I'm a senior in high school this year, and my teacher essentially knows nothing about Java (though he has a lot of CompSci backgroup, OO programming escapes him). I didn't study either and finished the multiple choice with a half hour left over and the free response with over 45 mins left. I remember the C++ test being a lot harder! /theskyjet

  118. 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!
  119. AP Test by dretay · · Score: 2, Interesting

    I have the benefit of having taken the AP CS test in both JAVA and C++. When I took the C++ test most of the questions centered around coding/analyzing loops and algorithms. In the JAVA test I took this year I only remember a few questions about O(n) and loops. All the questions about algorithms centered on how they functioned and under what circumstances each would be implemented. Most of the questions centered on OO concepts such as the differences between Abstract and Interface classes, and the difference between final and static variables. As a side note, there was a very large section of the test dedicated to all flavors of binary trees. Anyway, just my $0.02

  120. Sorry, I Had To Do This by Dejitaru+Neko · · Score: 1

    Have you ever taken an AP computer science test... on weed?!

    --
    Nyo nyo, the Neko Boy has spoken.
    1. Re:Sorry, I Had To Do This by addaon · · Score: 1

      Yes. In C++. Got a 5. Never took the class, though, so I can't comment on that.

      --

      I've had this sig for three days.
    2. Re:Sorry, I Had To Do This by Anonymous Coward · · Score: 0

      WOW! A 5! And you never took the class!

      You and every other high school Slashdotter. It's fucking easy.

    3. Re:Sorry, I Had To Do This by Anonymous Coward · · Score: 0
      It's fucking easy.

      Not at all; fucking is much harder work than taking the Comp Sci AP. Just take a look at your right arm.
    4. Re:Sorry, I Had To Do This by addaon · · Score: 1

      The difficulty is inversely proportional to the quality of the weed... which was the point. Read the parent of my former post.

      --

      I've had this sig for three days.
  121. I got screwed by the switch by Chr1s-Cr0ss · · Score: 1

    Our schoold district has a policy of "approving" textbooks before they can be used, and they were too frigging slow to approve the new Java books, so this year when I took the AP Programming course at my school, it was taught from last year's textbooks (in C++).

    So I didn't even get to take the test, and it's all because of our retarded beaurocracy.
    (Just more proof that my school is in fact run by imbeciles.)

    --

    68.3% of all statistics are made up on the spot.
  122. Much more than 10 years by Aidtopia · · Score: 2, Interesting

    I took the Computer Science AP test in Pascal in 1985. I doubt that was the first year it was offered (although I was the first from my high school ever to take it). So Pascal has been used in this test for much longer than 10 years.

    While I agree that those pursuing a CS degree should be more interested in a theory-based test rather than a programming-based one, it is useful for those going into other technical fields who need some programming experience that they can apply.

  123. man....too bad java wasn't around when I... by MoFoQ · · Score: 1

    I took it as Pascal...easiest exam ever (needless to say, I scored a nice 5/5), and that's not just among the other AP exams I took back in the day.

    either way, thx alot...now I feel old. Wonder if Cowboy Neal feels the same way.

  124. Re:Legally, I'm not supposed to say anything, but. by seanbry · · Score: 1

    indeed it was.
    and i want the find the author of this test and beat him in the face for the amount of recursion included on this test!

    C++ was a lot easier.

  125. What they don't teach (but should) by JMandingo · · Score: 1

    ...are best practices. No just WHAT to do, but WHY you do it.

    In no special order:

    1) Requirement gathering (with biz SIGN OFF!)
    2) Error handling!
    3) Trace/debug modes
    4) Param validation
    5) Source Control
    6) Bug tracking
    7) Configuration management
    8) Release management
    9) Multiple environments (dev,test,stage,prod)

    These are the things that *good* experienced developers know and do because they've learned the best practices over a long time. The overhead is minimal, and the payback is huge in easily maintainable apps with excellent uptimes. Other developers who don't understand the WHY cannot be browbeaten into doing the WHAT because they just dont believe. They just do it half-assed or not at all. The crap gets thrown over the wall and burns up in production and the whole team looks bad.

    Do I sound bitter?

    --
    Vonnegut was right: Of all the words of mice and men, the saddest are, "It might have been."
  126. US.??? by kchoboter · · Score: 1

    You mean all over the WORLD. There are other people out there!

    --
    4B4556494E
  127. I made my money on Visual BASIC by Orion+Blastar · · Score: 1

    and VBA programming. Not my choice, it was what most corps wanted us to program in.

    In my area there are very few Java programming required jobs and they are mostly filled by H1B and L1 Visa holders working cheaper than most of us US citizens work for. The rest of the Java programming is outsourced to other countries.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  128. There should be a .NET AP by stephanruby · · Score: 1

    There should be a .NET AP. If Microsoft is not shy about giving out engineering degrees, I'm sure they're not above giving out their own kind of AP exams.

    1. Re:There should be a .NET AP by Anonymous Coward · · Score: 0

      Is this a joke? The day the AP gives a .NET based test they will lose ALL their respect. This is computer science, not a windows programming framework test. Let me remind you that most CS students prefer linux rather than windows, and CS departments also prefer linux. How do you expect them to give students the credit? Computer Science CAN NEVER be OS based. Now, go to the open and meet linux!! People please remember this site is for nerds only, not for some ......

    2. Re:There should be a .NET AP by CrescentViper1 · · Score: 2, Insightful

      Wow. That is probably the worst idea I have ever heard about AP exams. Right now I'm going into my third year of CS at UIUC and I'll be dammned if any professor wants to waste a whole course on teaching .NET. First of all, in my opinion, it sucks. Second, CS is more math and algorithm oriented than frameworks and language specifics. AP exams are supposed to measure to a degree (quite bad from what I have seen) how you would do in a first year course at some university. I would really like to know which university will give .NET as a first (or even second) year language... So far I have seen here an Intro to programming with Java, some nasty discrete mathematics course, an Intro to data structures and algorithms with C++, some more nasty computational theory, more and more math, and so forth... Maybe that is what the AP should be aiming for... not just some stupid syntactical questions to be filled out on a scantron sheet.

    3. Re:There should be a .NET AP by stephanruby · · Score: 1
      Hey guys,

      It's a joke. Now. Laugh.

      I was just saying, if Microsoft is handing out certifications with the word "engineer" in its title, which is illegal in some States, then it wouldn't be above creating its own kind of AP exams.

    4. Re:There should be a .NET AP by Anonymous Coward · · Score: 0

      MIT's IT track teaches a systems development course using .NET

  129. MOD PARENT UP by lycono · · Score: 1

    I can't believe the grandparent got modded +5 insightful. Is everyone that reads Slashdot still in college or highschool?

  130. Mmm... is that deep-fried brain I smell? by bersl2 · · Score: 1

    If I missed more than four multiple choice questions, or if my first 'n-1' essays aren't absolutely perfect (and of course, I'll never know these...), I'm gonna be pissed.

    Everybody else in my class---all but two definitely 'not geeks'---chickened out and will take the make-up at a later date.

    Interestingly, today's Calculus BC exam was less exhausting than Comp Sci AB.

    By the way, anybody else get a good chuckle out the portion of the verbal directions that essentially threatens cheaters with copyright violation?

  131. Makes sense by Anonymous Coward · · Score: 0

    ... since most of the development jobs are in Java.

  132. Personal Story by Anonymous Coward · · Score: 1, Funny

    "If you took the exam, what were your impressions?"

    I did an impression of Richard Stallman and demanded that my exam paper be released under the GNU GPL.

    I then shaved my beard off and did an impression of Bill Gates and claimed that my fellow classmates were unamerican by not charging the going rate for solving the problems presented by the examiners.

    Finally, I doffed my smelly clothes and put on a charming two piece suit and in my best Steve Jobs voice, suggested to the attending tutors that my exam be given the highest marks because it looked more attractive than eveyone elses -- the pinstripe shading on my paper took ages to complete.

  133. Test easiness by GomerPyle89 · · Score: 1

    It seems like everyone I have talked to has said that the CS AP has been easy, almost too easy, but I think there was a reason for that. Since this is the first java AP ever the people at college board didnt know what to expect, and they didnt know how easy or how hard to make the AP. My guess would be that the first ever C++ AP was extremely easy aswell, but year after year or so, the college board people were able to hone in on a difficulty level. For those of us who took the test this year, we got off lucky with the guinne pig test. As years go by, the test will probably get harder.

  134. Studying Tips? by czion3 · · Score: 0

    My school splits computer science into two years. I took the first year last year and was interested in the subject, but because of scheduling conflicts I could not complete my second year until next year. Does anyone have any studying tips for the AP exam to help me remember what I forgot over the year?

  135. why java? by machacker · · Score: 1

    i can see why java would be better than c++ but come on! it still sucks. what langiage should they use?
    Ruby

    1. Re:why java? by deian · · Score: 1

      bash ;)

  136. Some sample questions by gonz · · Score: 3, Funny

    1. Write a function called "swap(x,y) that has the same effect as the pseudocode "t=x; x=y; y=t;".

    2. Define a new data type called "TableIndex" which is a synonym for the "int" basic type. (If your programming language does not support "typedef," a macro is an acceptable substitute.)

    3. Illustrate how to parameterize your swap() from #1 so that it will work with any basic type (e.g via function templates or macros).

    4. Create an array of integers, and illustrate how to resize the array. (Since dynamic-casting is obviously poor programming practice, feel free to utilize class templates if the language does not natively support resizable arrays.)

    5. Write a function that accepts a variable number of floating point arguments and returns their average.

    6. Without relying on a compiler from another programming environment, show how to call some simple functions from a C DLL.

    7. A mobile robot has 3 states, "roam", "sleep", and "evade". For a collection of 100 robots, demonstrate how an array of function pointers could be used to represent these states.

    Uh... hold on a sec! Java doesn't HAVE pointers, typedefs, templates, macros, resizable arrays, ability to call C functions, argument lists, or function pointers! :-D

    Cheers,
    -Gonz

    1. Re:Some sample questions by Fjord · · Score: 1

      You can't do the first one in C. C++, you can.

      4 is done easily tho not as elegantly as a true resize:
      int[] x = { 1, 2, 3, 4 };
      x = resizeArray(x,6);

      private static Object resizeArray (Object oldArray, int newSize) {
      int oldSize = java.lang.reflect.Array.getLength(oldArray);
      Class elementType = oldArray.getClass().getComponentType();
      Object newArray = java.lang.reflect.Array.newInstance(
      elementType,newSize);
      int preserveLength = Math.min(oldSize,newSize);
      if (preserveLength > 0)
      System.arraycopy (oldArray,0,newArray,0,preserveLength);
      return newArray; }

      5 static float average(float[] list)
      {
      float avg=0.0f;
      for (int i=0;ilist.length;i++)
      avg+=list[i]/list.length;
      return avg;
      }

      e.g.:
      float x=1.5f;
      average(new float[] { 1.0f, 2.0f, x });

      7 can be accomplished with a functor.

      Templates are coming in the next version and saying Java cannot call C functions isn't exactly true.

      --
      -no broken link
    2. Re:Some sample questions by gonz · · Score: 1
      You can't do the first one in C. C++, you can.

      Actually, #1 is extremely simple in C:

      void test(int *x,int *y) {
      int t = *x; *x = *y; *y = t;
      }
      But in Java, only object pointers are supported, and since the Integer objects are retardedly immutable, you cannot solve this without creating at least 1 new class, e.g.:
      class MutableInteger {
      public int value;
      };
      void test(MutableInteger x,MutableInteger y) {
      MutableInteger temp = new MutableInteger();
      temp.value = x.value;
      x.value = y.value;
      y.value = temp.value;
      }
      Java enthusiasts will point to these hacks as proof that "you just don't know Java", but in a learning environment, the "MutableInteger" is arguably more complicated than the simple "swapping via references" concept being taught.

      4 is done easily tho not as elegantly as a true resize:

      Yeah, I still remember the day I stumbled onto the source code for Sun's Vector class. ("OMG! Appending array elements is an O(n) operation and it cannot be optimized!" [clasps bosom, faints])

      average(new float[] { 1.0f, 2.0f, x });

      Nice... I should have mixed up the data types.

      Templates are coming in the next version

      This will be a very interesting development. In particular, since it will light a fire under Microsoft's ass to implement them in their Java^H^H^H^H C# compiler. :-)

      saying Java cannot call C functions isn't exactly true.

      True, but my claim was that you can't call DLL functions without having access to a C compiler and writing C source code. More to the point, have you ever seen actual JNI code? Compare this:
      Private Declare Function MessageBox _
      Lib "User32" Alias "MessageBoxA" _
      (ByVal hWnd As Long, ByVal lpText As String, _
      ByVal lpCaption As String, ByVal wType As Long)
      As Long

      to the Sisyphean project-in-itself described in this article

      I had to do this once for a simple DLL containing 10 functions, and it took about 5 days of digging through newsgroup postings and stepping through my DLL code in the C debugger. (Note that "my DLL" is a totally new DLL separate from the DLL with the 10 functions we want to call.)

      Cheers,
      -Gonz

    3. Re:Some sample questions by Fjord · · Score: 1

      You C example did not make a function swap(x,y), it made a functions swap(&x,&y), which is why I said it can't be done. In C++, of course, you would use references.

      I have written JNI code to bridge to COM. I didn't really find it hard. You just make your java class with the native methods, run javah to make the header file, and then implement the C function, and make it into a DLL. In my case most of the C functions were just passthroughs to a DLL, so they had one line. Maybe it's because I've created DLLs before that I didn't find it hard.

      A lot of that can be blamed on the IDE as well. Assymetrix's Supercede for Java had a C++ compiler built into it and would handle everything for you. Of course they folded so I later had to do the javah stuff (which I still don't think is hard), but it's an example of how an IDE can just make all this hard stuff go away.

      I personally haven't found the reason of your objections to really be hampering, but I do find that C and C++ have a lot of annoying things about them that I do not like (manual garbage collection being a large one, but I once quit a job because DLL hell just got to me. Java symbolically links at runtime so no hell). It's a tool for a purpose, just like perl, sh, C/C++, and Visual BASIC (all of which I use). Ultimitely, I'm most productive in general Java and I learned it after all of the above except perl. For this I will forgive it being unable to swap inline or lack typedefs. You cannot to the following in C/C++:

      void f()
      {
      do_something();
      new Thread() { public void run()
      {
      do_forked_code();
      }}.start();
      }

      (it make and instance of a new thread class, delcares what it does when running, and then starts the instance). It may be a little ugly, but it is very useful to declare it within the method like that (in C, you would have to make a separate funtion and pass it's pointer into a thread library).

      --
      -no broken link
  137. MOD PARENT FUNNY by notb4dinner · · Score: 1

    (Either that or 'Very Frickin Scary').

  138. I took it and blogged about it by UnknownQ · · Score: 1

    My impressions: http://www.invertedsanity.com/wp/archives/2004/05/ 04/ap-computer-science-test/

    --
    Wherever you go, there you are!
  139. Simple. by Anonymous Coward · · Score: 0

    I finished the test in about half the time that was given. The multiple choice we somewhat of a challenge, but the free-response was a joke. I responded to each with 10 lines or less of code.

  140. ap comp sci test/class experiences by undertow3886 · · Score: 1

    The first year of AP Comp Sci being in Java was also the first year my high school used block scheduling. For those who don't know, block scheduling is having four one-credit classes per semester instead of seven half-credit classes. This was extremely bad for the students in the class, including myself. The class was one of the few, if not the only AP class that was not expanded to a full year of 90 minutes per day. AP Calculus was extended, and it now covers the BC topics as well. AP Chemistry was actually two periods under the old (~50 minute per day) system, so block scheduling actually shortened it (2/8 of the year instead of 2/7).

    AP Comp Sci was only offered second semester so that our instructional time would be closer to the AP test date. However, this made it so we had, as a fraction of the course, much less instructional time before the test. We didn't even cover all the topics in our very basic book before the date of the test. Now we have over a full month of school left, but it's too late to help us increase our scores. We were expected to learn the topics not covered during class over Spring Break (the week before the test), which is totally unrealistic due to people being out of town, and generally not feeling like learning topics on our vacation that should've covered weeks ago.

    We spent the whole first month of the class reviewing topics from the intro course ("Java Programming"). This is with 90 minutes per day. Not enough time was spent doing activities that were related to the exam. We had maybe three days to spend in class reviewing; all but one was before break. Even then, it was only in small groups, never as a whole class. We had time for two quizzes over the course of the class: one of which was only on the review material from the intro course, and the other was on sorting algorithms.

    All my classmates' experiences could've been increased greatly if the class had been a whole year long. The whole time felt rushed. We weren't even able to get the case study working on our fucked up school computers until a week or two before break. We only had time to do the first two chapters of the case study in class, and most people didn't get through the whole second chapter. If the class had been a whole year long, we would've been able to safely spend the first month on review, which some of the kids definitely needed. We would've been able to cover at least the whole book. We would've had time to learn more interesting things and the class would've been more relaxed.

    The most painful thing about the class was kids not understanding what an ArrayIndexOutOfBoundsException means. As if the name isn't verbose enough, you get the line number and attempted index as well. Solving everyone's trivial little problems takes time; there was only one teacher and over 25 students. While kids were waiting for help, they couldn't do much other than just that. I, being a bit more advanced (some classmates claimed that I "wrote Java"), tried to help out where I could, but it wasn't enough, which leads to my next point.

    The only blame I can place squarely on the teacher is that she wasn't good at predicting at how long it'd take the class to complete assignments. Over half the assignments had their due dates pushed back, sometimes as much as three days. This lost time adds up over the course of the semester.

    I'm ranting like this because I think its fucked up that they screwed around with the schedule and only gave AP Comp Sci one semester, while all of the other APs got a full year. Comp Sci isn't any easier: most of the grades of the people in my class are similar to most peoples' AP Chem and AP Calc grades. If you want to shorten an AP class, shorten AP Statistics, that class is a cakewalk.

    If your high school ever goes to block scheduling and decides to make AP Comp Sci one semester only, take this message and shove it in the face of whoever is pushing for the transition.

    --
    Sick of people knocking on Gentoo's greatness in completely unrelated .sigs? Me too!
    1. Re:ap comp sci test/class experiences by unuselessj · · Score: 1

      Every year some rather unthoughtful teacher suggests moving my school over to block scheduling. Every single year it fails, primarily of the advanced classes offered at my school, especially the AP classes. I don't see a problem with making AP CS A a semester long course at the end of the year so long as the school offers an intro. level computer programming course. My school is still on a 7 period schedule. Freshman year all students in my magnet program are required to take a basic computer class that goes over the basics of things like excel and access and a bit of html and basic programming. Sophomore year the students are required to take a full year of programming, half a semester of c++ and half a semester of java. Junior year students can choose between taking A, AB, or a slower paced programming class for those who simply aren't into programming or lack the ability. I think that setup works well for my program but for most schools just making an intro programming course a requirement for entering AP CS would make the A class work fine. Well besides any of that, CS A is supposed to mimic a single semester class anyways.

    2. Re:ap comp sci test/class experiences by undertow3886 · · Score: 1

      Our AP Comp Sci class was billed, as it always has been, as covering the AB topics as well. I don't know what exactly the A subset consists of; maybe it would've been more managable for the time we had.

      It sounds like at your school, the students (sophomores especially), students have more preperation. The one intro class at my school was only one semester long under the old system, and remained so this year (ie, it was expanded). Other than that class (Java Programming, formerly C++ Programming), you've only got VB and HTML, which don't count.

      --
      Sick of people knocking on Gentoo's greatness in completely unrelated .sigs? Me too!
  141. Opensource, compile to native Java by DarkMan · · Score: 1
    a closed-source language which does not really compile into direct-to-hardware code.


    gcj

    Compile Jave to J-code, Java to native, and J-code to native. Is GPL'd. With libgcj to provide the API's.

    Besides, I think your comment about closed-source language are off base. A language must be well specified to be useful, and thus an opensource compiler/interpeter can be written, always. The only issue with this would be patents, and I would agree that using a patented language would be a problem.
  142. Next test will be written in Hindi by Anonymous Coward · · Score: 0

    Well, since their going to outsource our jobs, they might as well gear it to the future.

  143. hmm... by AgentAce · · Score: 1

    The test was based on C++ for a lot more than 1 year...at least 3

  144. 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.

  145. wow by Anonymous Coward · · Score: 0

    Given the number of responders to this thread vs. the number of responders to any given thread... that really shows how much of this population is comprised of 17 yr olds. Given that I can remember the Pascal test, I really need a life. ;)

  146. Re:Salute! by BlindSpy · · Score: 1

    actually your right - "it started being c++ in 1999 but they did do 1992 and 1993 in c++" my friend matt (quark_m13) just informed me of this. But thats not the point. The point is that they used C++ as a transition into Java.

    --
    Whoever dies with the most toys wins.
  147. Let's not be so quick to jump all over him by FanaticalDesperado · · Score: 2, Interesting

    I've been programming Enterprise Java for 4 years and I'm sure I would fail this test, since I don't know anything specific about either one of those terms.

    Perhaps I misinterpreted his comment. The use of the word specific made me think he has some fundamental knowledge of what recursion and ArrayList are but he does not remember the details. I know that I seldom use recursion, so when I do I have to sit down and think about it or just use a book to get a quicker refresher. No, it's not a real difficult concept. I'm sure that I'm not the only one here who doesn't bother remembering the details about what parameters every method takes. That's what books are for.

    But, if he doesn't even know what they are then you guys are right to doubt if he is a good programmer as he claims.

    1. Re:Let's not be so quick to jump all over him by Bozyo25 · · Score: 1

      Saying that you "don't know anything specific" about the term "recursion" is a pretty ridiculous thing to say. If you're a programmer and don't know very clearly what recursion is (it's an extremely simple concept), then you're not just not a "good programmer", you're a fscking moron.

      Now, having to think about how to do a specific thing recursively or something like that, that's completely different. And it doesn't sound like that's what the original poster meant.

  148. Re:Legally, I'm not supposed to say anything, but. by deian · · Score: 1

    I took the C++ AB (5) last year too and I just took the java AB. I think that the java was a bit more difficult, but then again I didnt pay attention in class or actually study for the test - I dont really like Java ;) Anyway I think that they should go back to Pascal or even C++, so the kids actually learn something instead of just how to copy and paste. Personally I think that they should learn( and understand) algorithms first and then code, java isnt the language to teach a kid how to think like a programmer.

  149. Was not too hard by mmatloob · · Score: 1

    I thaought the test was going to be much harder than it was, but I knew everything :). I did not have enough time to answer the last 6 multiple choice questions, but finished all of the free response. (This was my first AP, and I am a 9th grader)

  150. It was easy by HoboMaster · · Score: 1

    We had 1hr 15min for the multiple choice, 1hr 45min for the free response, same as the exam for C++ was.

    I thought it was overly easy, but then again, I do go to a top private school... I wasn't doing very well (low C) in the class, but I'm 90% sure I got a 5 on the exam. Basically, if you knew the marine biology case study, it was simple.

    --
    Remember kids, tin foil doesn't work, so use LeadHat.
  151. I don't really know by sagenumen · · Score: 1

    I had an AC/DC concert to go to that night...so I kinda skipped out of the exam early

  152. Data Structures by Papillon3111 · · Score: 1
    I remember my data structures class, I had it my second term of my sophomore year. We coded:
    1. Double Linked List
    2. Minesweeper
    3. Free Cell
    4. AVL Tree
    5. Graph
    6. Djikstras Shortest Path Algorithm
    7. Hash Table
    8. Quick/Shell/Merge/Heap Sort
    I left out the really easy assignments but that's hardly Freshman year stuff.
  153. 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

    1. Re:That's Funny... by Fjord · · Score: 1

      Since left-hand values cannot be NULL by definition

      By C++'s definition. But why couldn't a LHV be null, essentially saying you want the result dropped in the bitbin. You can do

      getValue();

      where you don't actually use the value gotten. But if that value comes back as in a reference you have to do

      Type notGoingToUse;
      getValue(notGoingToUse);

      --
      -no broken link
    2. Re:That's Funny... by HopeOS · · Score: 1
      Nothing prevents you from calling getValue and not using the return result. When I do this I explicitly write it as "(void)getValue();" so my colleagues don't assume that I made a mistake.

      Left hand value means that it can be used as the left-hand argument of an assignment. If you return a NULL reference, you are pretty much dooming the caller to fault since they will dereference it without checking. By returning a reference you are guaranteeing that the value is not NULL. The can cheat the system with some pointer casts.
      int& getValue()
      int* getPtrValue()

      getValue() = 5; // assigns ref'd value
      *getPtrValue() = 5; // equivalent

      int& shootFootWithBullet(void) {
      return *((int*)(NULL)); }

      shootFootWithBullet() = 5; // seg fault
      This is an uninteresting example since "setValue" would be more appropriate. A better example would be the following operator override.
      class stringtointmap {
      int& operator[](const char* key);
      };

      stringtointmap f;
      f["hello"] = 5;
      This allows the actual internal value to be exposed for assignment without providing an explicit pointer. I consider this to be cleaner, clearer code. For people that like hash tables and bounds checking, all that is available in C++, you just have to use the right objects.

      -Hope
  154. Re:Legally, I'm not supposed to say anything, but. by seanbry · · Score: 1

    This might, just might be a reason Java is taught now.
    Java forces an OO model. C++ is very liberal on this matter.
    In C you have to take care of your own garbage collection, Java takes care of most of this for you. And java is pass by val ( reference) which C++. I'm not all to sure what they have against the use of pointers. Ofcourse this is just a speculation.

    On a side, but nostalgic note :

    Man i remember learning pointer arthimatic that was some good stuff and a great learning process. You get to learn first hand what makes up strings. And how to manipulate them to their full potential. There some serious power behind this language.

  155. Is it a CS AP? um no, programming AP? um yes by Anonymous Coward · · Score: 0

    Well, I am in the 10th grade, I started studying programming since 8th grade. I know C++, C, PHP, SQL, and Java. One month ago, I did not know anything about Java except it runs through the JRE. I decided to take the CS AP A test and see how it went and I am completely self-taught. I must admit, the exam was really easy for me and I know I got a 5. Maybe it is because of my background experience. However, less than 5 days ago I did not know merge sort nor binary search. I looked it up on the internet, learned binary search and I still don't know how merge sort works apart that it is a "divide and conquer" sorting algorithm. This did not affect me in the test. In fact, I think that if I should had now known binary search, merge sort, insertion sort, and selection sort I would still do great. This is because they test algorithms giving you some code, and a predefined array and they say "what is the content of the array at the second iteration?". In the free response section, you can use sequential sort and get the problem correct. I bet that in the universities don't allow this freedom in the test. I am taking the AB test next year, I hope I can use my mind instead of having fun taking the test because its too easy.

  156. Not so hard! by nweibley · · Score: 1

    We learned about 8 months of superfluous crap, of while about 2 weeks worth of info actually showed on the exam. I feel dirty for knowing Java, and although it is a widely recognized language, I feel it is archaic and that C++ would have been MUCH better to stick with. The exam was rather easy though! All PR2004 robots REPORT! =D -----Nate c/o 2005

  157. WHO THE FUCK CARES by Anonymous Coward · · Score: 0

    nobody gives a shit about high school ap tests

  158. nothing is perfect in the real world by GunFodder · · Score: 1

    In the real world programmers don't have time to pore through their code for memory leaks. They don't have time to write every last bit of functionality from scratch. They can't sit down and go through a core dump for every exceptional condition; they can't even afford to take the system down every time an exception occurs. They can't take the time to learn the architectural nuances of every platform in existence.

    The real world requires the use of libraries that provide common functionality at the expense of efficiency. Comprehensive garbage collection and exception handling keep the system up at the expense of operating efficiency. And virtual machines and multiplatform toolkits hide architectural differences that would otherwise improve performance.

    There are many applications where platform-specific enhancements are necessary; there are many others where this is not possible.

  159. It wasn't bad by nerdly_unite · · Score: 1

    Took it that day, yeah. Really easy, but then I have the coolest teacher. Even while having it be fun, he had us practice questions that were harder than the test. But they gave way too much time, even though I finished pretty quickley for both of them, if I had any more time I would have gone to sleep!

  160. Java class low quality (at my school atleast) by Hangin10 · · Score: 1

    Last year (as a sophomore), I took the
    Computer Science class at my high school.

    A fairly good intro to C++ (I already was
    proficient at the time, and rather obsessed with
    assembly...), very good detailed look at searching
    & sorting algorithms. At the end of the year,
    I took the AP Exam and got a 5.

    This year I took it again because of the change
    to Java. Not good. (the following is what they
    do at my school, I, of course, don't know how
    they teach it at other facilities). Quite boring.
    Java is a fairly big change in the way things are
    done than C++, yet it gets taught in nearly the
    same manner. More emphasis needs to be on the
    OO concepts and how to get objects to work together
    instead of algorithms that will generate slow(er)
    bytecode when you can just call a built-in method
    that probably ends up pre-written in native code.
    I know for a fact that most of the kids in my
    class don't even know it's not native code...
    (my favorite quote "What do we have to import to
    use while?")

    I didn't take the AP Exam again this year, mainly
    because I realized I don't like Java as much as
    I thought I did/would.

    Some thoughts...

  161. This is a bad sign for Java... by bergeron76 · · Score: 1

    Just look what AP exams did for Pascal!

    I got a 4 on mine (I think) and it was [Turbo] Pascal based.

    I did, however learn a LOT about functional programming - most of which I'm trying to forget so I can learn OOP style programming.

    --
    Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
  162. References by vlad_petric · · Score: 1
    For my edification, could you give me a small example where references make life easier ? (as opposed to just having pointers ?)

    Thanks,

    --

    The Raven

    1. Re:References by xYoni69x · · Score: 1
      void F(int& Ret1, int& Ret2);
      Assume both Ret1 and Ret2 are mandatory return values (i.e. should never be NULL pointers). Why waste time by comparing them to NULL inside F? Without moderate code abuse, a programmer can't pass NULL to the above function.
      class C {
      C::C(const C& rhs);
      };
      In copy-constructors the language requires a reference. Could you theoretically do with a pointer instead? Sure, but this makes your life easier. rhs will never be a NULL pointer.
      ostream& ostream::operator<<(int x)
      {
      // ... print x ...
      return *this; // Is 'this' ever a NULL pointer? Assuming sanity is enabled, no!
      }
      The ultimate and classic STL example. This takes care of your operator overloading argument as well. With this you can write elegant code such as:
      cout << 17 << x << 42;
      Let's rewrite the same thing with a pointer instead of a reference:
      ostream* ostream::operator<<(int x)
      {
      // ... print x ...
      return this;
      }

      *(*(cout << 17) << x) << 42;
      Oops. Looks like the automatic dereferencing that comes with references took care of generic code ugliness.
      --
      void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
    2. Re:References by Anonymous Coward · · Score: 0

      Not a very good argument: Prof. Stroustrup could simply have designed the language so that cout<<17 would call ostream*<<int.

      But, because of pointer arithmetic, this would cause backwards compatibility problems with C.

      Which is most of the problem with C++. C++ may have some high-level features, but until you can, for example, start a program with

      int main(std::vector<string> args)
      you can't escape its low-level C roots.
    3. Re:References by HopeOS · · Score: 1
      If you never overload operators and do not use templates, then I cannot think of any reason that you would need references. Here is an especially bad use of a references.
      int a=1, b=2;
      int &ref = a;
      ref = b;
      Is ref now referencing b or is a being assigned 2? The compiler has only one interpretation here. With pointers, both possibilities can be made explicit.

      References are used to declare parameters that are passed by reference, such as for an operator override. They are also used for return values when it must be clear whether the result will be a temporary object or an existing object. The code (a+b) returns a new object. The code (a+=b) returns a. This matters to the compiler when generating optimal code.

      -Hope
    4. Re:References by Anonymous Coward · · Score: 0

      cout << "x = " << x;
      The operator << returns a reference, and that's why you can chain it. If it returned a pointer, you would have to write
      *(cout << "x = ") << x;

  163. The Case Study by timealterer · · Score: 1

    While many may have been lucky enough to have been taught this course in a proper manner, our AP Computer Science class was really just the Grade 12s trying to play games on the locked-down old-school Macs at the back of the class. We had a textbook, and that was about it.

    Having a grade more than 50% higher than all the other guys in the class, I was the only one who took the exam. To my horror, 1/3 of the exam was about a "case study" I had never seen, but was expected to know all about! I just wrote an explanation that I had no idea what they were talking about and they gave me 4/5 on the test (which surprised me, that's for sure.)

    In summary, if you're taking this class and your instructor doesn't know what they're doing, make sure you find that year's case study on the AP site and study it!

    --
    - Allen Pike
    Altering time, one time at a time.
    1. Re:The Case Study by immakiku · · Score: 1

      How do you know you got 4/5 on the test already? Also, everything about the case study should be in the Quick Reference packet that you get during the test.

    2. Re:The Case Study by timealterer · · Score: 1

      I did the exam a couple years ago. The Quick Reference packet gave me some information on the case study, but it was presented as a reference to what you already were supposed to know. Coming into the exam, I didn't know there WAS a case study, let alone that it was an aquarium simulator, let alone that theProcessor was the air filtering object, let alone that you had to call startMe() on it, let alone...

      --
      - Allen Pike
      Altering time, one time at a time.
  164. I took it!!!! by nukem996 · · Score: 1

    I took the exam though because of all these papers I had to sign saying how I cannt talk about the specs of the test I can say how it was generally. I should probably start out by saying Ive been on computers all my life(mainly using linux), my dad started me out and I have been coding since the age of 7 or so starting with simple HTML learning C, C++, a little bit of IA-32 ASM, VB(I needed it for a job), and Java. I started Java out a little bit on my own. The way my school has it set up you have to take an intro course and then the AP class. I was lucky to get into the intro class freshman year since you have to be in Algerbra 2/Trig to get in. I really took the class just for my college application. The class was pretty easy we followed a work book given to us by the college board it went through all the easy stuff if statements loops objects memory sorting and searching ect... I though as well as my class mates that we were well prepared for the test everything but one question was covered. The free response was pretty easy and most of the time I at least was checking for typos. I think I got a 5(the highest grade you can get on it) but only time will tell(we get the results the 3rd week of July). It was a four hour test(from walking in to the class to walking out) and while it required alot of brain power I though I was prepared. The only thing I really didnt like about it was the fish case study and that was because I dont like working with programs I didnt write and if I have to I like to have the full source, not just memorize a bunch of methods and what they do.

    1. Re:I took it!!!! by gazoombo · · Score: 1

      what he said. My school (at my and 1 friends urging) offered an AP CS class this year for the first time. Our computer teacher is somewhat inept so I barely learned anything in the class, but with my knowledge of general programming concepts and a bit of outside study I was able to do quite well (I think). Let me know when you get your score back and we can exchange notes.

      --
      John Hancock
  165. I took it by Anonymous Coward · · Score: 0

    I took the test on Tuesday. Three hours alloted, used about 2.5 of that. The free response section was a real snap.

  166. I took the exam in 2000 by JewFish · · Score: 1

    the exam has been based on C++ (1 year)

    Wrong! I took it the 2nd year it was ever done in C++, that was 2000. So lets see C++ in 1999,2000,2001,2002,2003. I count 5 years of C++ and now Java in 2004.

  167. Some Colleges Don't Accept AP Java Credit by BaconLT · · Score: 1
    Interesting tidbit: One of my students tells me that two of the colleges he's applying to-two of his top choices and also major state universities-told him they don't accept Java AP credit because it's not their language of instruction.

    That is an interesting commentary on how well respected Java skill is in educational institutions.

    (I'm not arguing against its usefulness.. Java IS a sexy language... But against its usefulness as an instructional language? Perhaps.)

    --
    Who mediates your information?
  168. Re:Are Pointers malloc() and free() Computer Scien by xaoslaad · · Score: 1

    Personally, I like the direction. Having taken C and having been a stalwart supporter of that languages power, I cannot tell you how happy I am you don't have to put up with this bullshit in Java.

    But that is just the lazy half of me. All the checking and built in handling that Java does slows it down. Not only does it improve life for the developer, by giving him one less chance to mess up, it also helps the end user by giving the developer one less chance to screw up.

    But then again it is slow. And C has benefits over Java in some arenas to be sure (I'm hardly an expert but I am sure you and others know this.)

    So my answer is don't have all students learn just Java, don't have them all learn just C, or just Assembly. Hell, if you do teach primarily in just one, then force them to take a course in 2 other languages as well, and a course in theory that predominatly teaches the advantages and disadvantges of each with some lab/project demonstrastion...

    And for the record, I agree with you, not everyone should be a Java programmer, but not everyone should be a C programmer either...

  169. what? that was an exam? by Anonymous Coward · · Score: 0

    It was basically "Copy this to the next page"...it was so easy!

  170. Re:Language shouldn't matter! - AGREED by sellers · · Score: 1

    I tend to agree mostly with you. Computer Science really should be a science again - and Software Programming should be created to fill the 'programming' void left by that refocus.

    Some schools have a "software engineering" area or speciality and that is fine too. But the science should be learning the hash, optimizing the hash, focusing on algorithms. Those are the tough courses and so many CS and CE students struggle through them because it's so depth. Instead, make the CE and SE/SP students take Algorithms I and move on - and then the CS students can take Algorithms II and really master the concepts and then be able to apply them to make environments faster and optimized. (ideal)

  171. Try studying... by EvilSporkMan · · Score: 1

    That question took me approximately five minutes. Also, I compiled the case study code about a month before the test and can assure you it works. Maybe you should rtfm? Incidentally, the review book I used for the test seemed to mention that recursion was the way to deal with binary trees, though I didn't really look at that closely because I was taking the A test.

    --
    -insert a witty something-
  172. a friendly reminder by man_ls · · Score: 1

    Posting or discussing specific test questions is not authorized by ETS, and may result in legal action against the person posting them by compromising the security of the tets.

  173. Last years C++ exam by aaron_ds · · Score: 1

    I took the last C++ AP exam offered. I chose the A section not AB. I started learning C++ my sophmore year in highschool to practice for my school's ScienceBowl team. I immediatly got hooked and continued casually programming on my own. I took the C++ AP exam my senior year and passed with a 3! Ya!

    There was only one other person that took it with me, who didn't do so well. :-/ It's too bad my school didn't offer a C++ class.

    Overall, I found the test to be pretty easy. At that time I wasn't too comfortable with classes, let alone inheritance, but aparently it didn't affect my grade too much. The hardest part (and the most fun) was Definatly the free response. English free responses are boring compared to writing a free response in C++. It was interesting because we had no way to check our cod e(yeah I reply on compiler errors Way too much).

    Over all it was a good expirence. It gave me more confidence in coding, and hopefully it will get me some cheap units in the future. :)
    I'm so glad I took it when I did. I don'd trust Java's garbage collection ;) gimme new AND delete anyday ;)

  174. Is this article really old? by jtshaw · · Score: 1

    I took the CS AP test back in Spring of 1999. It was in C++ then. I remember this because I didn't take AP CS as a Junior because I didn't want to bother taking the class in Pascal when it was going to be changing to the more usefull C++ the next year. Then in Spring 2001, while I was in College, I helped my old high school CS professor with Java stuff because he was perparing to change the AP class to Java. Was he just jumping the gun or is this post wrong?

  175. I took it... by immakiku · · Score: 1

    I took it yesterday. It was extremely easy. I am actually in an AP Computer Science AB class, but I didn't really pay any attention at all this year: we students have computers in the classroom, and most of us just browse everyday. That said, you can see that I'm not exaggerating when I say that I studied a total of one Sunday before taking the AB test. The only material I used was the Barron's AP Comp. Sci. with Java. As I had a cold (or allergies) yesterday, I didn't quite finish the first part of the exam. Even so, I still have confidence in getting a 5 on it.

  176. Re:Since when... by Geoffreyerffoeg · · Score: 1

    The intraweb? You have Slashdot as part of your LAN's WWW system!? A true l33t one, indeed....

    Honestly. If you're going to abuse words don't abuse other innocent words too.

  177. Physics B vs. Physics C by MATTtheROGUE · · Score: 1

    Dear god, Don't take Physics at all AP! Its a living hell, I have the test next monday; and we're (people in my class) are so about to do miserably. Last year, in the "great state of SC," 5 people made 5's (highest possible). 4 went to my school, and studied from the beginning of the school year. Its going to be insane. The Thing is, its appearently very difficult to teach BC Calc and Physics C at the same time. Physics B requires no calculus, while C is based on Calculus subjects. Thats why most high school's offer B instead of C.

    1. Re:Physics B vs. Physics C by badi95 · · Score: 1

      I am taking the Physics C test monday and I am shitting my pants. Mechanics is easy it is the damn Electricity and Magnetism. And i just recently found out that the college I am going to next year only takes 5's for credit. I am royally screwed!!!!

  178. Took AB version yesterday by Anonymous Coward · · Score: 0

    Of the four high schools in my larger (15k student) school district, I was one of SIX STUDENTS to take the test. Five of us took the AB version and 1 the A.

    It was horrible. Very hard. Our teacher didn't spend nearly enough time on the things that the entire exam was focused on -- the TreeNode class, stacks/queues, sets/maps, and algorithm efficiency.

    I would suggest that any other high school nerds out there take the A version, NOT the AB.

    I studied for 6 hours the night before, and slept for 14 the following night to 'recharge'. That test was the hardest exam I have ever taken.

  179. C++ has been around for longer than a year by Lugae · · Score: 1

    I took the Computer Science A exam in C++ in '99 and Computer Science AB in C++ in 2000. I don't think that the College Board switches languages quite as frequently as the sumbutter would like to have us think.

  180. My experience by Kernull · · Score: 1

    When I took the test it was based on C++

    But you had to write it on paper
    This presented many difficulties.
    Numeber one, I type faster than I write. Second, Making sure everything is properly 'typed' or 'written' properly (semicolons, brackets, puncuation etc) is much easier for me to recognize on screen than paper. Thirdly, I can't run it to test if it works! I don't know about you, but for me, I like to test out my code as I write it to make sure it works. It's like a spell/grammer-checker. And that grammer checker can point out huge mistakes I may have made on mistakes. In the case of English, you may realise that teh sentance has no relevance to the paragraph, and perhaps it belongs elsewhere. And I see a parallel in programming and using a compiler to check code. Not to mention copy/paste!
    When I write code, I know there will be mistakes - can one expect to code perfectly? I didn't like the test. (And I'm bitter because I got a lower score than I think I would have been capable with using a computer)

  181. 1999 by Anonymous Coward · · Score: 0

    i took the first compsci-ap test in c++ in 1999.

    the year-long class taught me more than both compsci1 & 2 in at RPI.

  182. AP Computer Science with C++ by Anonymous Coward · · Score: 0

    Having taken the test when it was in C++ and now majoring in CS with a minor in math, the test was thoughouly unhelpful. I got a 5 on the test and got credit for a remedial progrmming course. I slept through my first programming class in college b/c it was all stuff I had seen before. I wouldn't reccomend wasting the 80 some odd dollars on the test cause it gets you nowhere.

  183. I got served. by gt25500 · · Score: 1

    My school should stop offering the Computer Science AP... To take the AP course there was a prerequisite to take. Introduction to C++. Why not Introduction to Java? That meant that the first 2 months were spent on teaching basics to the people with no programming experience (Yep, they didn't require the prerequisite course this year :/). We started a month late on top of that because the IT department is composed of ex-janitors (I wish I was kidding).

    My teacher doesn't know C++ nor Java. Nothing at all. Which is fine, I have learned everything on my own and I planned to. I DID expect her to correctly inform us about exactly what is on the A and AB exams. Instead we got something like, "Oh the AB doesn't have much more then A... Just like multidimensional arrays."

    Awesome, I will take the AB and get a 5! Ah ha. No. It is the night before the test and I decide to do some practice AB questions from the college board web site. I got 3/15 correct. Why? What the hell are all these other things? Iterators, Queues, etc...

    I pretty much stayed up all night figuring the stuff out. I got everything down pat except the Binary Tree and Big O stuff... I wish I had a few more days to learn the topics... If I am lucky I will pull a 3 - a less humiliating grade...

    --
    _________ Help me get a PSP!
  184. Mistake by Banjonardo · · Score: 1

    BZZZZT, wrong. C++ was for at LEAST two years. I took it last year and I know it wasn't the first year. And what's this about having more time? I took the alternate, and everyone got the same amount of time for the free response. (Boy, don't I miss coding on PAPER?)

    --

    -----

    Score 3? For what? Being wrong, at length? - smirkleton

  185. first apcs java exam by chaoschimera · · Score: 1

    okay, i did see one person try to correct the article, the exam was c++ up to and including the last exam preceding this year's, not "3 or 4 years ago" as someone said. i took apcs A (AB was not offered at my school) and it was ridiculously easy. not just for me, but it was unchallenging even for the less skilled, less computer oriented people in my class. so the scoring cutoffs should be close. as for it being java: i personally hate java. hate it. i like c++ far better, but for the purposes of this exam, it doesn't matter. i saw a couple people post comments saying the test should be on concepts, not language. it IS on concepts, the course simply uses java to teach those concepts to students. it is not a language exam. it does not ask about bytecode and package structures, it focuses on sorts, recursion, etc. there is nothing wrong with the exam.

    --
    #!/bin/bash
    :(){:|:&};:
  186. Such a joke by Elfan · · Score: 1

    I took the "A" version last year and it was a complete joke. The longest code I had to write was about one line. As for more general "Computer Science" type questions I don't recall anything much more than "gee what is this loop doing" or "whoah, data is usually stored in bytes." On the plus side my teacher did an excellent job teaching us C and C++ (2 semester courses) so that by the time I got to college I skipped cs I and was far ahead of everyone in cs II.

  187. in my day... by pixel-fodder · · Score: 1

    Java, we din't 'ave Java in my day - we had to code using punchcards and our bare teeth and if you passed the exam - you had to work for 5 years for nowt before you got your own desk; and another 5 for a chair. +-- too grumpy for a sig.

  188. Re:Are Pointers malloc() and free() Computer Scien by pHDNgell · · Score: 4, Insightful

    Because people sure aren't learning them from Java. C hackers are getting harder to find.

    Good riddance. I'm getting annoyed by this constant assertion that C is the only real programming. It's just inappropriate for most of what people are doing with it.

    For any chunk of C code using malloc() and free(), there's a smaller and faster OCaml equivalent that's garbage collected.

    For fun, go to the Great Computer Language shootout and download the java, c, and ocaml fibonacci code (same algorithm). On my machine, the ocaml version is the fastest, followed by the java version, and then the C version. Including startup time, the java version is always faster (user and real CPU time) than the C version.

    I write enough C, but OCaml isn't the first language that's produced faster code than I've been able to produce with a C compiler, nor is it the first that's made it easier to write reliable apps than unreliable apps.

    What I really don't understand is the way people refer to free() and malloc() as if they're some sort of fundamental elements of programming that are required to be taken seriously. You know they're library routines, right? Should I not take someone seriously who doesn't use sbrk() directly in their code?

    --
    -- The world is watching America, and America is watching TV.
  189. C++ vs Java Exam by Anonymous Coward · · Score: 0

    I took the AP CS A exam for C++ last year and I thought that that was not easy, but def not hard. This year I took the AP CS AB exam for Java and the multiple choice were def easy but the free response were difficult

  190. Calc is a prerequisite for live by bluGill · · Score: 3, Insightful

    Calculus isn't required I'll give you that. However there is a reason you were told to take it: it teaches you a lot more than any other class. Learning that you will need latter in life, but you won't realize it. I never use calc itself in life, I couldn't do a simple derivative anymore. I use the thinking abilities calc gave me every day.

    You are wasting everyone's time by not talking calculus. Most of all your own.

    1. Re:Calc is a prerequisite for live by Anonymous Coward · · Score: 0

      You are the very essence of ignorance and arrogance.
      Calculus is extremely important, BUT you are a fucking idiot who cant read the comment you are replying to.

      "You are wasting everyone's time by not talking calculus. Most of all your own."

      There is nothing useful in calculus that applies to introductory programming. Trying to state that the poster is wasting peoples time because of a stupid prerequsite is simply proof that you are either illiterate or retarded.

      Its not like the poster is saying calculus is useless.

    2. Re:Calc is a prerequisite for live by defile · · Score: 1

      Yeah, thanks.

      The reason the requirement was especially obnoxious is that in my school system, unless you had taken some extra math courses or started early somehow, the furthest you'd get by graduation is "precalculus".

    3. Re:Calc is a prerequisite for live by Geoff-with-a-G · · Score: 1

      I generally agree with you about the importance of studying Calculus, but I still think this guy was right. If the reason to take Calculus is that it's really important for everyone, not that it's necessary to study Comp Sci, then it should be a required class, not a Comp Sci prerequisite.

      Yes, it's important. Yes, everyone should learn this. But no, these two subjects are not dependent, and your requirement fails to catch the large percentage of people who don't take Comp Sci.


    4. Re:Calc is a prerequisite for live by Anonymous Coward · · Score: 0

      Even more important than calculus, spelling should be a prerequisite for life.

    5. Re:Calc is a prerequisite for live by Anonymous Coward · · Score: 0

      Calculus is not the only class that teaches you thinking abilities. You are better off taking a logic class. That way you get thinking abilities without the useless mathematics bullshit.

    6. Re:Calc is a prerequisite for live by boots@work · · Score: 1

      So you're not allowed to be alive until you can spell correctly? I fully sympathize. I'm sick of alot of loosers misspelling things on slashdot.

      But how would that work exactly? A little spelling bee delivered over ultrasound to a conceptus still in the womb? Or, if you believe life begins at conception, are we supposed to give gametes a spelling test before before coitus?

  191. Anyone else notice questio 35, AB exam? by Anonymous Coward · · Score: 0

    Never bothered to post on /. before.

    Took the AB exam tuesday,

    just wonder if anyone else decieded that question 35 was either completly nuts, impossible, or anything like that?

  192. Hey, Back off! by Anonymous Coward · · Score: 0

    All right look. I didn't take the test, but I don't doubt that it was difficult. So it might have been the hardest test ever, I don't know. But that's no reason to take it out on my teacher. Mr Schram is a really nice guy and a good teacher and it's not his fault you didn't know the material.

    1. Re:Hey, Back off! by Anonymous Coward · · Score: 0

      I have no intention of starting a flame war, but you need to get your facts straight. He could be the nicest guy in the world, but that doesn't mean he knows anything about java.

      However, I'm sure he made a lot of money selling licenses of his book off to unsuspecting schools... With that money i hope he can afford an editor.
      Also, when he wrote this book did he just take a copy of his C++ book and do a find+replace of "Cout" to "System.out.print"?

  193. The old C++ APs by Lailyx · · Score: 1

    I was a taker of the C++ AP in '99, and was TA for the course that took it in 2000, we had a mix of AB and A people taking it.

    The AB test back then, even in C++ was mainly made up of order (Big-O) and linked-list / tree questions, something on the order of 60% of the multiple choice. The A test from what I've heard from the students covered most everything else indepthy. Several questions on: what does this mystery function do, as oppossed to only one or so on the AB.

    Order of algorithms and the basic data structures (mainly how to use pointers) were big on the AB. As most people say, most of what they should be testing for is language independant. If I remember correctly, the GRE Computer Science subject tests all use Pascal (the traditional language used for describing theory and algorithms).

  194. did anyone else have the fish? by dahmer · · Score: 1

    when i took the ap computer science exam in '02 in C++, we spent all year in class doing a fish simulation that was more of a pain in the ass than it was helpful to me. then on the exam we had to 2 parts as mentioned by other people, but the second part was answering questions about the fish problem, i received a 4 on the exam and got credit for it, but as soon as i went to college i had to take a class in java that was the same level as the AP class and I lost my computer science credits that would have transferred. my teacher for the class told us that she was going to teach the class in Java the next year, if she had done that earlier, I would not have wasted my time losing credits. I think it is a good idea to teach the course in Java.

  195. Hey Buddy by xintegerx · · Score: 1

    AP tests aren't supposed to predict your future performance directly. They show your motivation and how you did on the same test compared to other high school students in the country, though, and that is useful information. But anyway, the AP score is a way to test out of a class in college.

  196. easy; half multiple choice, half coding by ElliotLee · · Score: 1

    the exam was easier than i expected. it was multiple choice and short answer. a majority of the multiple choice questions were about java, but there were a couple more general ones, such as converting hexadecimal to decimal. the short answer, or written part of the exam was worth half the grade and was all about writing java code. however, it was fairly simple classes and methods, mainly about using for loops and arrays. there was also adding on to the MBS (marine biology case study) program. they included a ~30 page appendix with method definitions and much of the source code from MBS classes - a lot more than you need. nothing needed to be memorized; you could do it with basic programming logic and the reference book which we were allowed to use during the test.

  197. Took the A exam, done with 1hr to spare by tvh2k · · Score: 1

    I had literally an hour on each section of that AP...what a joke. I took the C++ AB exam as well, and this was nothing comparitively.

  198. I'd have to agree by Anonymous Coward · · Score: 0

    I'd have to agree, but recursion and ArrayList are probably the simplest concepts on the test.
    What DID irk me what the incessant algorithmic analysis in the free-response and the use of advanced data structures. (note: this was posted two days after the test was proctored and no multiple-choice questions were mentioned.)

  199. Re:Are Pointers malloc() and free() Computer Scien by Anonymous Coward · · Score: 0

    I have my MCSE, and I would have to say that either VB or C# would make ideal languages for AP. I wonder why nobody has mentioned these! They don't have malloc() or free(). We need to get the next generation of computer scientists familiar with Palladium and trusted computing.

  200. Computer Science != the study of Computers by Anonymous Coward · · Score: 0
    computer science -- the more generic, language agnostic study of computers.

    Argghhh! Computer science is not the study of computers. It is the study of computation. Big difference.

  201. I took it last year ... by magefile · · Score: 1

    And the AP classes were most assuredly not GPL. There were, however, 3rd-party LGPL rewrites (pretty simple classes). pstring, pvector, etc., IIRC.

    1. Re:I took it last year ... by Compenguin · · Score: 1

      They AP classes we're GPL if you got them alone but they also shipped with the case study which was eventually GPL'd and therefore they were GPL'd.

  202. There will be absolutely by bersl2 · · Score: 1

    NO STACKING!!!

  203. And it was good by TLouden · · Score: 1

    I took that test and while I'm not at liberty to discuss anything specific I felt that the topics covered were fair to the students and accurately tested a students knowledge of not only the Java programming language but their knowledge of software design in general. Has anyone else taken the exam before to tell me if that was their impression then as well?

    --
    -Tim Louden
  204. I disagree by magefile · · Score: 1

    When I started programming outside of class, it was another hurdle for me to leap before sharing my code with others - we used deprecated crap (#include vs. #include ), didn't do anything with stdio.h, and knew nothing about STL. It's not that much harder; students can handle it.

    1. Re:I disagree by magefile · · Score: 1

      Sorry, I meant #include vs. #include

  205. Re:Are Pointers malloc() and free() Computer Scien by powerlord · · Score: 1

    Not familiar with OCaml, but what JVM?

    What Compiler was the C code compiled with (with what optimization options)?

    Did you try other compilers/JVMs?

    Was the JVM already resident in memory on your system?

    Not questioning, just curious.

    --
    This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
  206. When I took the C++ exam.. by Visaris · · Score: 1

    When I took the C++ AP comp-sci AB exam, I was the last one done. In fact, I looked up from my test after about an hour and saw all the other test takers throwing shit around and goofing off! I was so worried! Why the hell was it taking me longer, when they were all done?

    You know what? They weren't done at all. They gave up! I was the only one out of my class to get a 5, though there were a couple of fours.

    If you plan on taking the test, be sure you can read code. I don't know if things are still the same, but when I took it, a good portion of the test was about extending/understanding a case study. We had the code for the case study to read in advance, but I was more focused on trees and such. What saved my ass was the fact that I managed to read the code that was included in the back of the test for reference... so... yeah..

    --

    I am a viral sig. Please help me spread.
  207. Re:Language shouldn't matter! (It's OOP that does) by Anonymous Coward · · Score: 0

    Lnaguage doesn't really matter. I took both A and AB exams a few years ago in C++. Almost nothing was language specific on the exam (even arrays and strings are used through CB wrapper classes rather than built in versions). When they ask you to write code, they don't look at syntax as long as they can figure out what your semantics are.

    The big difference isn't the exam. With C++ a lot of AP teachers didn't teach object oriented programming. Now they can't get away with that.

    -Chris Heriot

  208. ( ( (Scheme!) ) ) by hockeytops · · Score: 1

    Over here at Rensselaer we are actually thinking about teching CompSci I in Scheme because it is very simple (so they say), and a lot of academic types think functional programming is the way of the future. I just spent a whole semester writing other interpreted languages using Scheme and while I do think functional languages are fun, they don't seem to be "all there" yet. I heard MIT doesn't even teach C/C++ and relies purely on languages like Scheme. Any comments? Anybody hate/love scheme?

    1. Re:( ( (Scheme!) ) ) by goddess32585 · · Score: 1

      I'm going to chime in with my non-CS-loving .02...
      So I'm two weeks away from finishing MIT's intro CS class, 6.001, which is taught in Scheme. Submitted my last project 5 minutes ago :) I think it's a good choice for this class b/c it's easy to get started without having to memorize a lot of little details, so students can start programming immediately. As we cover more topics, however, it's capable of illustrating those just as well. For higher-level classes, I have no idea how useful or otherwise Scheme would be. And granted, my only other experience is a bad attempt to teach myself C once upon a time...so Scheme is decent. But for the love of god, find a better editor than Edwin. And they don't rely purely on Scheme; the CS lab course definitely uses Java, for one.

    2. Re:( ( (Scheme!) ) ) by Anonymous Coward · · Score: 0

      6.001 is a pretty nice class, in retrospect. Unlike most programming classes, we were learning the "hard stuff" (dynamic memory structures, recursion) early on and leaving most of the stuff that's trivial (display, input) for later.

      Granted, that was mostly due to the language itself, but that's more evidence that Scheme's a good choice for the class. Edwin's adequate and makes you feel cool.

    3. Re:( ( (Scheme!) ) ) by Anonymous Coward · · Score: 0

      Coming from a background where my introductory classes to programming stuck to the display and input stuff- I can say Scheme is a refreshing language. It is easier to move beyond that input/output stuff onto real problems. My last year and a half high school was spent copying programs verbatim out of my text book and documenting them with comments like "this is teaching me nothing", "when are you going to teach", etc. Before you jump on me about copying the programs please understand that was actually the assignment! SICP is a great book and I have heard great things about that book How to Design Programs: An Introduction to Programming and Computing its supposed to be aimed at teaching high school kids how to program.

  209. I took the exam yesterday by supersloth · · Score: 1

    My AP class was 4 guys including myself who had already taken all of the schools offerings in C++. They considered it an 'independent study' and just gave us a copy of a Java book called 'Java Software Solutions'. We pretty much ignored any and all assignments given to us and just did our own programming projects all semester. None of us found the exam difficult at all. It probably had more to do with our backgrounds the last few years, and 3 of the 4 of us still prefer C++ to Java.

    --
    I eat crayons
  210. AP CS exam in 1993 by alx512 · · Score: 1

    I took the exam in 1993. The exam was pascal based. I think it was a 1-2 hour written only exam. The exam covered a lot of the basic data structures and algorithims (linked lists, bubble sorts, etc). I personally didn't think it was anything too spectacular.

  211. Java as a First Language by jerdenn · · Score: 1
    Java's fine as a language, just not a first language.

    I'm quite certain that Mr. Bunny would disagree.

  212. Re:Are Pointers malloc() and free() Computer Scien by LqqkOut · · Score: 1
    According to SCO, malloc() isn't free()...

    $699 please.

    --

    -- In Soviet Russia, radio listens to YOU!

  213. so what is?! by Anonymous Coward · · Score: 0

    ok, tell me what major IS for people who "just like programming" and "just like computers"? what's the name of the major for people who enjoy CREATING software, not just theorizing about the limits of what can be created? what's available for, you know, the richard m. stallman types?

    answer me that, and i'll start believing the hype about only looking at computability in computer science.

    1. Re:so what is?! by doktor-hladnjak · · Score: 1
      Most universities do not have a major like that, because it's not the type of thing you'd study at a university.

      More absurdly, it's akin to asking "what's the name of the major for people who enjoy CREATING hairstyles, not just theorizing about anatomy/aesthetics/fashion?" Hairstyling is a trade. Nobody expects to be able to major in it college. If you want to do that, you go to cosmetology school, which is completely independent of a university. Programming is also a trade, but just happens to be one that's very practically necessary to Computer Science (as well as Physics and most other natural sciences). The bottom line is that programming (like costmetology) is just not academic enough on its own.

      Likewise, people who want to build telescopes, probably go to trade school to become optics technicians and don't study astronomy at a university. People who want to put an electrical system in a building become electricians, not electrical engineers.

      So to that, I would say if you like programming, major in something academic that you find interesting, for which computers are useful. For a lot of people, this subject is computer science, but there are plenty of people working as programmers who studied physics or math or even english lit. In fact, there are a lot of people working as programmers who didn't go to college at all. The problem of course, is that if you ever want to advance beyond being a low-level programmer, the concepts you'll learn in a Computer Science degree program will be necessary (although that doesn't always mean you HAVE to go get the degree to master that material).

      That said though, lately some schools have been giving degrees in Software Engineering, which is supposed to focus more on producing software product and less on CS theory.

  214. Language Doesn't matter by Anonymous Coward · · Score: 0

    If two languages have some minimal* expressivity (both are Turing complete) then there is no expression in the first language that cannot also be expressed in the second language. If you need a more formal description of this, please read the Church-Turing thesis. What it means (without formal math proofs) is that "Language doesn't matter". You are being too soft when you say 'Lanuage shouldn't matter'. It's more elegant to say "Language DOESN"T matter".

    The minimal expressivity: (stolen from Wikipedia)
    1. # The method consists of a finite set of simple and precise instructions that are described with a finite number of symbols.
    2. # The method will always produce the result in a finite number of steps.
    3. # The method can in principle be carried out by a human being with only paper and pencil.
    4. # The execution of the method requires no intelligence of the human being except that which is needed to understand and execute the instructions.

  215. And... by Phidoux · · Score: 1

    ... does the garbage collector deal with all those who failed?

  216. Link to Scheme book by meldir · · Score: 2, Informative
    1. Re:Link to Scheme book by the+morgawr · · Score: 1

      Actually I was thinking of The Structure and Interpretation of Computer Programs although the book you linked to seems very interesting as well. Has anyone read them both?

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
  217. Pascal AP Exam 1995 by taxtropel · · Score: 1

    I took the AP Exam in 95. there were no multiple choice questions. it was all code. at the time the instructor graded it. we got a certificate afterwards to our performace. As far as the language. I like Pascal, it was very nice for learning about CS. granted you can't really teach OOP w/ Pascal, but still, personally, I think JAVA sucks ass, so oh well. Since then I've moved on to more complex languages (not to learn but to use) such as C and ASM. I think it's a shame that the AP tests are moving in such a direction. OOP is nice to learn, but honestly, a programmer isn't worth sh*t if they don't understand the hardware (sorry cross-platform dudes) side of the situation. There is a deep relation ship between code and hardware, and its unfortunate that more students, or perhaps more importantly the instructors, do not understand this. I realize that in theory, you should be able to abstract away from hardware, and specialize in the simple pure logic of the problem. But IMHO that is a wrong attitude. You cannot remove the hardware aspect any more than you can remove the user aspect (even if the program is non human interactive, there is still a human user who implements the system) I think, at that impressionable age, the complexities of software and hardware interaction should be a hands on experience. Both should go together, not one separate from the other. Once the kids have had a taste of that, then they should choose and specialize. just my $US0.02

  218. Look here... by Anonymous Coward · · Score: 0

    http://www.idiom.com/~zilla/Computer/javaCbenchmar k.html

  219. Re:Are Pointers malloc() and free() Computer Scien by pHDNgell · · Score: 1

    Not familiar with OCaml

    OCaml will compile to its own bytecode or native code (i.e. not via C).

    but what JVM?

    java version "1.4.2_03"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-117.1)
    Java HotSpot(TM) Client VM (build 1.4.2-34, mixed mode)

    (OS X)

    What Compiler was the C code compiled with (with what optimization options)?

    gcc version 3.3 20030304 (Apple Computer, Inc. build 1640)

    With -O3

    Did you try other compilers/JVMs?

    I tried it after reading someone's post on orkut suggesting that the java one was faster than the gcc one. The original poster was, I believe, using Linux. I had the same results on my Mac.

    Was the JVM already resident in memory on your system?

    I did multiple runs of each, so stuff was probably cached.

    --
    -- The world is watching America, and America is watching TV.
  220. 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.

  221. Difficulty by rufiusDOTcom · · Score: 1

    I took it and found it to be far easier than the testing I received in my APCS class from my teacher (though she's a tough teacher). My only complaint was the idiotic test administrator who said I had "30 minutes" left when I really only had 10 minutes left which thoroughly jipped me of 6 questions on the multiple choice. I found the free response to be incredibly easy but I like to write code. And on a note for the first comment, you only get 3 hours for the test, not all day, or shouldn't have.

  222. C++ Test by nial-in-a-box · · Score: 1
    I took the C++ test a few years ago, and it wasn't really all that difficult. What scared me was that I was the only one of the 8 at my school that pulled down a 5 from that test. I say that because while the AP test does give you an early indicator of how you may fair in college programming courses, it does not even begin to encompass true OOP programming and software engineering. The fact that so many people did so poorly on that test really made me reconsider my decision to do something besides programming. I struggle to learn advanced programming, but apparently I really should do it because I have been told that I "just do things right" and considering that so many programmers don't, I probably owe it to the world to stick to it with a little vi and whatever language I'm using at the time.

    On a side note, if you bombed the AP test, or think you did, don't worry. It really doesn't matter unless you had to pay full price to take it ;), and even then it's a fraction of the cost of 3-4 credit hours at just about any school. Even if you get a 2 on the test and CS or CE is your major, your school will have a course that will get you up to speed in a semester. Ultimately, the AP tests are just a convenience, not really a measure of how you can do. That said, don't let the scores get you down if this is what you want to do.

    --
    I am feeling fat and sassy
  223. I agree, but by Anonymous Coward · · Score: 0

    I don't agree to it all. Yes I know his books are filled with typos, I read them too. However, are you telling me that you can't learn anything because something isn't spelled correctly or one of his statements is missing a semicolon at the end? See, this is what upsets me. People take things like this to such extremes. Mr. Schram is a human being and makes mistakes just like the rest of us and now people say they want to basically tear him apart. I'm not stupid, I know they really wouldn't do it but still you shouldn't direct your anger towards him since this isn't really his fault. Now I know that there are more to his books than just typos, but for me that kind of helps me understand the material a bit more, because I admit I'm slow. So when something isn't just right in his books or I don't understand, I raise my hand and ask why it is written like that and why it isn't like how I thought it was supposed to be. And since he's my teacher if he sees it's a mistake, he apologizes and explains how it should be. And I think that your teachers should do the same. If you don't understand it then that's what they're there for. They should be able to explain to you what is right even if the book says it's different. It happens in my other classes too, not just APCS. My teachers usually teach as they would normally and dileberately tell us to ignore the book when it says something different. I'm not wanting a flame war either, I just don't like it when people take things out on others when it's technically not their fault. Instead of going to their teachers and discussing the parts of the test that were difficult, they instead waste their time trying to figure out how many ways they can torture Mr. Schram.

    1. Re:I agree, but by Anonymous Coward · · Score: 0

      I understand your reply, but the fact is his book had multiple conflicting errors. The main problem was that my teacher lacked the ability/knowledge/competency to teach the course or answer APCS2 based questions. When you combine this style of teacher with Schram's book you create a terrible learning place.

  224. AP tests in general by Remlik · · Score: 1

    I didn't take the CS test as I wasn't programming in HS but I have taken the AP Calc, American History, World History and Macro Economics tests.

    If the AP CS classes are taught anything like my other classes were taught everyone should do rather well. Teachers in my HS taught specifically for the test, that is, based on student interviews on past tests they covered in depth materials that were on previous tests and flew through the rest.

    For Calc my teacher actually finished teaching us everything she expected to be on the test a month early...AP calc became movie/study hour.

    We were all given a number and told to memorize that question/answers. When we got done we were to write it down and hand it into the teachers. Do this for 5+ years and you pretty much have every question on the AP tests.

    It worked, I did very well on all my tests, but I have to wonder if I didn't miss a few things along the way. Obviously free response questions are generally designed to test complete understanding of material but hey, this is how it was done for me.

    --
    Apple free since 1990!
  225. i took the c++ ap cold, no class or study by Akatosh · · Score: 1

    The C++ one was a joke and a half. I'd done a little bit of C programming in the past, mostly tcp/ip applications, stupid script kiddy stuff, obfuscated C entries, etc. I didn't take any classes or read any of the material. I think I was supposed to use the API crap they they threw in, but I just re #define'd any of it that appeared to more reasonable things like memcpy. Anyway, it took less than an hour and I got a 5. The hardest part was having to write code with a pencil instead of typing it.

  226. Re:Are Pointers malloc() and free() Computer Scien by chialea · · Score: 1

    Try -O2. I believe O3 includes some optimizations which generally make things run faster, but not always. Aggressive optimization is a chancy thing.

    Lea

  227. Testing times by NoseSocks · · Score: 1

    AP Tests are a joke. One or two may get transferred, but on the whole, spending a huge amount of time on them is a waste. So you apply to colleges using your GPA and class rank up to and including your Junior Year, meaning that keeping a high class rank senior Year is unimportant unless you want to go up and make a pretty speech?

    What do you do? I know in MA there is a loophole in their rules that pretty much lets anyone with at least a 3.2 GPA attend a State College for classes instead of High School. "So what?" you may ask "The colleges I'm applying to won't accept Programming Class college credit because I went to some silly state school." I would agree with you. Instead of taking programming classes, figure out what liberal arts / non-technical electives the schools you are applying to require you to take, and take those at the college. I went to a State School my senior year, loaded up on English, History, and Poli Sci classes, and transferred all of them to the Engineering school I attended. With the free time gained from this, I was able to get a Bachelor's in Engineering and a MIS at the same time.

    Know the system and outsmart it.

  228. CS Gaming Degrees by Macrat · · Score: 1

    What about the CS departments out there changing their courses in order to pump out more students who can program video games?

    Is that engineering? science? other?

  229. Re:Are Pointers malloc() and free() Computer Scien by pHDNgell · · Score: 1

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

    I don't *believe* it works the way you described (that'd make it many times faster, not just a few percent faster (23.07u vs. 31.79u)), but the point is that dealing with every possible detail only makes it harder on the programmer and harder on the compiler to come up with a better way of doing the work.

    I agree that fibonacci is a dumb comparison, but it is a top-of-my-head case where you lose a lot in C (i.e. the ``fast'' language) vs. other languages.

    The other thing to remember is that Java isn't a functional language.

    --
    -- The world is watching America, and America is watching TV.
  230. Re:Are Pointers malloc() and free() Computer Scien by spinkham · · Score: 1

    That's exactly the point of this shootout. It's not a super-optimized version for each language, but a simple algorithm in each language.
    You could do it faster in either language, but that's a different benchmark. For this test, it's basically "for a constant low amount of effort, you get x performance across different languages."
    He says, "For this test, each program should be implemented in the same way. (For this test, all solutions must use recursion as specified below. For a number of languages other (iterative) techniques may be much faster, but that would make it a different test.)"
    Functional languages just happen to be designed with this sort of problem in mind, and therefore do very well.

    --
    Blessed are the pessimists, for they have made backups.
  231. Re:Are Pointers malloc() and free() Computer Scien by pHDNgell · · Score: 1

    Try -O2. I believe O3 includes some optimizations which generally make things run faster, but not always. Aggressive optimization is a chancy thing.

    I did. If you can find a configuration that has the C version running as fast as the java version, post it (and explain it if you can...but grabbing an old version of java doesn't count).

    Here's what I got (of course, pay no attention to the real time, I was doing other stuff with the machine at the time):

    dustin2wti:/tmp/so 509% gcc -O3 -o fibo_c fibo.c
    0.020u 0.070s 0:01.49 6.0% 0+0k 27+11io 0pf+0w
    dustin2wti:/tmp/so 510% ./fibo_c 43
    701408733
    31.470u 0.090s 0:33.50 94.2% 0+0k 0+0io 0pf+0w
    dustin2wti:/tmp/so 511% gcc -O2 -o fibo_c fibo.c
    0.060u 0.060s 0:00.17 70.5% 0+0k 0+10io 0pf+0w
    dustin2wti:/tmp/so 512% ./fibo_c 43
    701408733
    31.670u 0.020s 0:32.43 97.7% 0+0k 0+1io 0pf+0w
    dustin2wti:/tmp/so 513% gcc -O1 -o fibo_c fibo.c
    0.040u 0.050s 0:00.17 52.9% 0+0k 0+6io 0pf+0w
    dustin2wti:/tmp/so 514% ./fibo_c 43
    701408733
    31.100u 0.040s 0:35.71 87.2% 0+0k 0+0io 0pf+0w

    dustin2wti:/tmp/so 515% ocamlopt -o fibo_ml fibo.ml
    0.120u 0.080s 0:00.49 40.8% 0+0k 4+8io 0pf+0w
    dustin2wti:/tmp/so 516% ./fibo_ml 43
    701408733
    22.910u 0.060s 0:57.17 40.1% 0+0k 0+0io 0pf+0w

    dustin2wti:/tmp/so 517% javac fibo.java
    0.590u 0.200s 0:03.84 20.5% 0+0k 3+10io 0pf+0w
    dustin2wti:/tmp/so 518% java fibo 43
    701408733
    23.950u 0.200s 0:38.74 62.3% 0+0k 0+2io 0pf+0w

    dustin2wti:/tmp/so 519% gcc -v
    Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
    Thread model: posix
    gcc version 3.3 20030304 (Apple Computer, Inc. build 1640)
    0.000u 0.010s 0:00.02 50.0% 0+0k 0+0io 0pf+0w
    dustin2wti:/tmp/so 520% ocamlopt -v
    The Objective Caml native-code compiler, version 3.07+2
    Standard library directory: /usr/local/lib/ocaml
    0.040u 0.020s 0:00.07 85.7% 0+0k 0+0io 0pf+0w
    dustin2wti:/tmp/so 521% java -version
    java version "1.4.2_03"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-117.1)
    Java HotSpot(TM) Client VM (build 1.4.2-34, mixed mode)
    0.100u 0.070s 0:00.24 70.8% 0+0k 0+8io 0pf+0w

    --
    -- The world is watching America, and America is watching TV.
  232. AP Tests by MicroBerto · · Score: 2, Interesting
    Just a general comment to all those in high school and planning on going to college:

    TAKE AP EXAMS!! TAKE A LOT OF EM AND STUDY HARD!

    I passed out of about 35 credits for college becaues I had an awesome AP exam showing, and many were offered at my school. 15 credits of math, 5 for computer, 10 for history... then some spanish I got credit for.

    Not only will you save money, but you'll be able to skip menial stuff and get into your major courses earlier - and will get yourself a more spread-out schedule so that you don't have to cram a ton of classes in because you "lost" freshman year.

    I have it on easy street now for my last year because of AP exams. And the history classes i missed are HARD to get A's in, i hear. So take the time, study it, get a 5, and forget it :)

    --
    Berto
  233. not a huge thing by kronchev · · Score: 1

    I work at the company that actually produces and writes the test (ETS) and there hasnt been a big hoopla about it...yet. I guess well have to see if everyone complely screwed it up or not.

    On a related note,its a shame that its java. Java: the most useless language ever.

  234. Re: Those exams are shit.... by Anonymous Coward · · Score: 0

    Perhaps if you had scored decent on the test it would have been less time between high school and cs degree....

    Those who scored a perfect score on the AB Exam are given credit for several courses( about 9 hr in a quarter school)

    Who cares if you can describe a quicksort algorythm if you can't implement it? Show me a job where you're gonna have to do that!

  235. High-Low; It's All Relative. by HopeOS · · Score: 1

    For what it's worth, the extent of how "high" a language is with respect to another is not a matter of language features, IMHO. It's a matter of what the compiler is doing for you that you don't have to, or could not otherwise do as efficiently, for yourself.

    Anything you can implement in C++, you can do in C. Polymorphism, exceptions, and virtual functions: all of these are implementable in C -- with some hassle. But here, the C++ compiler just takes care of it. So what is the C++ compiler doing for you?

    Classes are simply structures. Classes with virtual functions are simply structures where the first member is a pointer to a v-table. A v-table is structure containing function pointers. In C, you would have to declare and implement each of these items. C++ quietly does that for you. C++ also calls your initializers and finalizers for you, which is nice, but it doesn't check to make sure you actually initialized everything.

    Exception handling is mostly the maintenance of a linked-list of structures, some gotos, and some long-jumps. Some compilers go a bit further with this which is why C++ exception handling can be more efficient. C++ can pushing and pop the exception handling stack in optimized assembly whereas the C program has to do it manually.

    After that, you are pretty much on your own. Nothing is automatically initialized for you. No builtin string class. No builtin bounds checking. No builtin hash tables. No builtin anything, really.

    As for C++ templates, I would consider that a "higher" level than the basic new/delete, try/catch/throw mechanism mentioned above, but it's really a separate part of the language. I know C++ programmers who never touch templates. I love templates, but I consider the feature to be more of a sophisticated macro preprocessor than a different mode of the compiler. In the end, no new assembly language optimizations are performed than are otherwise available in C++.

    -Hope

    1. Re:High-Low; It's All Relative. by daveinthesky · · Score: 1

      Being that you contradicted yourself in your reply ("High/Low it's all relative" and later "COBOL is much higher level than C") ... just want to set things straight here..

      A language can definately be more powerful than another...

      "Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.

      And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).

      As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.

      When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.

      By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.

      I know this from my own experience, as a high school kid writing programs in Basic. That language didn't even support recursion. It's hard to imagine writing programs without using recursion, but I didn't miss it at the time. I thought in Basic. And I was a whiz at it. Master of all I surveyed.

      The five languages that Eric Raymond recommends to hackers fall at various points on the power continuum. Where they fall relative to one another is a sensitive topic. What I will say is that I think Lisp is at the top. And to support this claim I'll tell you about one of the things I find missing when I look at the other four languages. How can you get anything done in them, I think, without macros?"

      http://paulgraham.com/avg.html

    2. Re:High-Low; It's All Relative. by HopeOS · · Score: 1
      Well, first off, I do not see any contradiction in anything I've stated, so if you think you've identified one, state it explicitly. It's more likely that something needs to be clarified.

      Secondly, I've programmed in many dozens of programming languages, and I don't consider any to be more "powerful" than another. They are either optimal for a given problem set or not. If a language is complete, you can write anything in it. Some languages make this easier, but you must accept certain tradeoffs if you use them.

      As I said previously, the degree to which a language is "high-level" has nothing to do with its feature set. It is solely the degree of abstraction. For a given problem described below, one can divide the languages into several levels of abstraction. They are:

      HIGHEST: arguments have no fixed type, set processing is automatic, including bounds checking and iteration. Instance lifetimes are managed.

      FOR EACH I IN SETOFARGUMENTS FOOFUNC(I)
      for i in setOfArguments do foofunc(i)
      for I in $(SETOFARGUMENTS); do foofunc $I; done
      for i in setOfArguments: foofunc(i)
      while (list($key,$i) = each($setofarguments)) foofunc($i);
      (foreach foofunc setOfArguments)

      All these statements are at a roughly equivalent level of abstraction. They all do exactly the same thing in approximately the same way. They iterate through an entire set of data, in sequential order, without any regard to type-checking. Each language has its own features and failures. The first will choke if there are any lowercase letters. One of the languages will choke if there is a space character in the argument. Another requires an additional key parameter. The last one does not need an explicit iterator. These issues are related to syntax, not code generation.

      Also, this is not to say that each of the languages presented above are at the same level; they can be further separated out amongst themselves, but they are all higher levels than the next group and many languages not referenced will fall between.

      MIDDLE-HIGH: Type-checking is enforced. Set processing is accomplished through class-specific iteration. Bounds checking is enforced. Instance lifetimes are managed.

      VALUES[] setOfArgs = new VALUES[N];
      for (int i=0; i<setOfArgs.length; ++i) foofunc(setOfArgs[i]);

      Different from the higher-level languages, the value type must be explicitly declared. Iteration is no longer an automatic function of the language. From a syntactic point of view, this code looks similar to C++, but that does not make them equivalent. What makes this higher-level then even C++ is that bounds checking is implicit and management of the setOfArgs array is taken care of directly.

      MIDDLE-LOW: Type-checking is enforced. Set processing is accomplished through class-specific iteration. Bounds checking is not enforced. Array management is not provided. Only scoped instance lifetimes are managed (ie. anything not allocated).

      std::vector<VALUE> v(N);
      std::vector::iterator i;
      for (i=v.begin(); i!=v.end(); ++i) FooFunc(*i);

      Vector v(N);
      VALUE* i;
      for (i=v.Begin(); i!=v.End(); ++i) FooFunc(*i);

      Vector v(N);
      int i;
      for (i=v.FirstIndex(); i!=v.LastIndex(); ++i) FooFunc(v.Deref(i));

      All of these cases are equivalent, both in terms of code implementation and in terms of features and failures. There is no bounds checking for the iterator, regardless of whether it is implemented with pointers or integer offsets. The vector class must be explicitly declared in its entirety; there is no builtin type. Memory for the vector must be explicitly allocated and destroyed. Due to scoping rules, limited instance management will automatically call the constructor and deconstructor for the vector.

      LOWER: Type-checking is enforced. No classes. No bounds checking. No instance management. No initialization. Limited

  236. references w. templates by vlad_petric · · Score: 1
    In my original post I said that I dislike operator overloading and abused templates - I actually use templates a lot, but only class templates and only with types, and I try to avoid mixing inheritance with templates as much as I can.

    So if you don't mind, I'd greatly appreciate an example of references making your life easier with templates.

    Tia,

    --

    The Raven

  237. references w. templates: example by HopeOS · · Score: 1
    Here's a simple example. Try to create a map where the first argument is a class. You will find that without overriding the less-than operator for mykey it won't work.

    typedef std::map<mykey,myvalue> MAP;

    MAP m;
    m.insert(std::make_pair(mykey(),myvalue()));

    Somewhere you will need to declare and implement:
    bool operator<(const mykey& k1, const mykey& k2) const;
    This single overload allows the map to use this class as the key for sorting purposes. That's very powerful voodoo. Since copies of the key and value are made, you should also implement copy constructors for both mykey and myvalue which again take references. If you don't, you get whatever the compiler gives you which might not be what you want.
    mykey(const mykey& k);
    myvalue(const myvalue& v);
    Without these items, you cannot fully utilize the map template. At most you would be limited to having basic types like integers and pointers for the keys and values. Sometimes that's enough, often times it's not.

    A sample is provided. The ECODE tag screws up the indentation, so it's not as clean as it could be.
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <map>
    using namespace std;
    class key {
    public:
    int value; char name[32];
    key(int v, char* n) { value=v; strcpy(name,n); }
    key(const key& k) { value=k.value; strcpy(name,k.name); }
    bool operator<(const key& k) const {
    if (value < k.value) return true;
    if (value > k.value) return false;
    return (strcmp(name,k.name) < 0); }
    };
    typedef map<key,int> MAP;
    int main(void)
    {
    MAP m;
    MAP::iterator mi;
    m.insert(make_pair(key(0,"test"),1));
    m.insert(make_pair(key(1,"hello"),2));
    m.insert(make_pair(key(1,"aaa"),3));
    m.insert(make_pair(key(1,"zzz"),4));
    m.insert(make_pair(key(2,""),5));
    for (mi=m.begin(); mi!=m.end(); ++mi)
    printf("%d,%s => %d\n",mi->first.value,mi->first.name,mi->second );
    return 0;
    }
    Results in:
    0,test => 1
    1,aaa => 3
    1,hello => 2
    1,zzz => 4
    2, => 5
    -Hope
    1. Re:references w. templates: example by vlad_petric · · Score: 1
      If you don't mind I'm gonna continue this argument, as I think it has a lot of pedagogical value (if you want to take it offline, feel free to e-mail me at AT.cc)

      I'll start by saying that STL was designed for references, and as a consequence it feels a little bit more natural to write code for it with references. However, the examples in your reply can be done with pointers easily (including the pair). Nothing prevents you from redefining the comparison operator for pointers (with a friend), or better yet, give the collection a custom-made Comparator.

      Furthermore, by using pointers you're shielded from a very common mistake that, in the best case scenario, will lead unnecessary copies on the stack - it's quite easy to forget one & in your code and ... copy constructor. With pointers it's not the problem as the compiler will immediately barf (one way or the other).

      I might be missing something - let me know if that's the case.

      --

      The Raven

    2. Re:references w. templates: example by HopeOS · · Score: 1

      I sent email directly. -Hope

  238. Which IDE you guys use for exam? by haritn · · Score: 0

    Vim?

  239. i took it by Backstab · · Score: 1

    I took the A test, I dont feel I did that bad on the multiple choice, but the code part I felt I aced it.

    --
    http://www.backstab.net
  240. You're wrong by Pentagram · · Score: 1
    eg. string.substring(0,5) will take the first 4 letters of the string

    You're wrong. Quick test:
    public class StringTest {

    public static void main(String[] argv) {
    System.out.println("foobar".substring(0,5));
    &nbs p; }
    }
    Output: fooba

    i.e. string length of 5

    You probably got confused over 0-indexing. I can only guess that you're a novice programmer because the Java API is excellent, possibly the best of any language (though other valid criticisms can be made about the language).
  241. Too bad it's Java and not Python by Lord+Agni · · Score: 1

    I teach CS in high school, and C++ and Java require a lot of handwaving and "Pay no attention to the #include (or public static void main() ) behind the curtain!" Write yourself a little "Hello, World" in C++, Java, and in Python. Which is shorter, meaning, which has fewer opportunities for simple errors? More comprehensible? Has less to explain about it?

    Python is more versatile than Java. Want to explore the procedural world of hoary computer languages from the past? Python is procedural. Want to build a program using object oriented pardigms? Python is an OO language. Want to use bizarre (to me, at least) functional programming paradigms? Python supports that, too. A quick one-off script? Python. Fake-out simple GUIs? Python and Tkinter, or PyGTK, or PyQt (what an opportunity missed for QtPy!)or wxPython, or even Swing and AWT with Jython! CGI programming? Python. Even without a do...until() construct, you can program simply and easily, exploring all the important themes of a CS curriculum, with immediate feedback from the interpreter, without the compile step Java requires. Python runs on many typical desktop machines, even the modest P-150 laptop this humble teacher's salary affords (OK, it's really my wife who only lets me afford my modest laptop) Java doesn't run on it well, but Python runs fast enough on any machine my student's are likely to have at home, from the latest AlienWare to a donated Garage-a-tronic. Next year, I'll be using Python first, then migrate to Java to prepare for the AP exam, once they have their sea legs (Get it "C" legs?!? I slay me)

  242. AP CompSci Exam by SylvurNyte · · Score: 1

    I totally took that exam and was totally not ready for it. I'm in IB, this "rigorous" high school program for anal retentives and we have an elective course called Computer Science. I'm in the first Java class they've had. We totally blew off the AP and concentrated on IB Exams. The AP just completely objectifies programming. I know I'm only a beginner, but programming is an art, is it not? The best part is the free-response where you compose your own programs and make the graders eyes roll, but some of it is pretty hokey, like more comments than programming, and using retarded object programming.

  243. Agreed. by magefile · · Score: 1

    Agreed, which is why they only allow certain API calls. But my point is that memorizing the capitalization of this array access function, or the specific name of this method, is not CS. It's figuring things out. Giving the coder references allows them to spend more time problem solving, and less memorizing crap. They wouldn't ask for a recursive sorting algorithm; instead, they ask for a solution to a "practical" problem.

    It's too long to explain here, but google for "Marine Biology Case Study" to see what I mean. They did it in C++ originally, but (I believe) it was also used in the Java exam.