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?

7 of 812 comments (clear)

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

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

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

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