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?
For C++ you get 3 hours. For the new Java test, you get all day.
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!
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.
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.
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)
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?
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"
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.
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
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.
What the hell is with all this highschool crap on /.? /. become some place for high school loosers to hang out?
Since when did
Oh, since, well let me think...SINCE FOREVER!
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
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
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...
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