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