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?

124 of 812 comments (clear)

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

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

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

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

    6. 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
    7. 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.
    8. 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.

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

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

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

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

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

    12. 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.
    13. 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?

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

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

    16. 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.
    17. 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.
    18. 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.
    19. 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!
    20. 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.

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

    22. 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
    23. 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.

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

  4. Java? by CowboyShit · · Score: 2, Interesting

    Don't you mean Visual Java?

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

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

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

    6. 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
    7. 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.
    8. 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.

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

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

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

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

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

    2. 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!
  11. Re:Salute! by Mmmrky · · Score: 4, Informative

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

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

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

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

  15. Surprised I'm by Anonymous Coward · · Score: 2, Funny

    I was sure they were going to go with Forth this year.

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

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

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

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

  20. 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
  21. 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!

  22. 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!

  23. 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
  24. 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 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.

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

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

  26. 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!
  27. 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

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

  29. 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?
  30. 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.
  31. 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

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

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

  34. 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!

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

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

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

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

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

  40. 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.
  41. 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
  42. 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...

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

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

  45. 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!

  46. 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 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)))();
  47. 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!
  48. 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

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

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

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

  52. 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.
  53. 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

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

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

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

  57. 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.
  58. 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.

  59. Link to Scheme book by meldir · · Score: 2, Informative
  60. 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.

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