AP CS Test Takers and Pass Rates Up, Half of Kids Don't Get Sparse Arrays At All
theodp writes: Each June, the College Board tweets out teasers of the fuller breakouts of its Advanced Placement (AP) test results, which aren't made available until the fall. So, here's a roundup of this year's AP Computer Science tweetstorm: 1. "Wow — massive gains in AP Computer Science participation (25% growth) AND scores this year; big increase in % of students earning 4s & 5s!" 2. "2015 AP Computer Science scores: 5: 24.4%; 4: 24.6%; 3: 15.3%; 2: 7.1%; 1: 28.6%." [3 or above is passing] 3."Count them: a whopping 66 AP Computer Science students out of 50,000 worldwide earned all 80 pts possible on this year's exam." 4. "Remember that AP exam standards are equated from year to year, so when scores go up, it's a direct indication of increased student mastery." 5. "Many AP Computer Science students did very well on Q1 (2D array processing–diverse array); >20% earned all 9/9 pts" [2015 AP CS A Free-Response Questions] 6. "The major gap in this year's AP Computer Sci classrooms seems to be array list processing; Q3 (sparse array): 47% of students got 0/9 pts."
What a confusing summary. There are meaningless links that are just numbers. The quotes following the numbers have no context and make no sense. Formatting what appears to be a list into one single paragraph makes it awkward to decipher. The linked-to graph image is missing many labels. The lack of other details doesn't help, either. What the fuck is this submission even supposed to be about?!
Duh! I bet it matches up exactly with kids that don't understand pointers and linked lists. Wonder why that might be...
That is like the second easiest pointer-driven data structure...
Perhaps the kids' teachers taught them the other things and not sparse arrays. It's pretty hard to program something when you have no experience and the only clue you have to program is the title of the data structure.
This mash-up of digit-heavy tweets is a crappy SlashDot summary of a sort we haven't seen before.
Doesn't Dice pay editors for this kind of stuff?
Yeah, the instant a test has to be in JAVA, sorry, check please.
I can answer that question in Assembly for three processors, Python, ECMAScript (AKA Node), C (note the lack of trailing symbols), bash, awk, and FORTH, or muddle through it in LISP, F, PHP, PERL, five or six other processors in assembly, C++, C#, Go, and Modula-2/3, but seriously... The test requires answers written in JAVA, the least instinctually writable and overly verbose programming language ever invented? O.O
- WolfWings, too lazy to log into Slashdot in years and years.
But once I looked it up the solution was completely obvious. The wikipedia entry suggests a linked list, while I was also thinking associative array.
Now my curiosity is demanding a sample copy of the test that I can take. Beyond not having memorized many of the terms I wonder how I would do after 20+ years of programming.
With these sort of tests I often worry that it is just Bulimia Learning where you have to memorize esoterica while never learning to actually program. For instance for you C++ wizzards out there can you answer this one: "What is the compl keyword for? And why is is needed?" Surely as an accomplished C++ programmer you know all the keywords, there aren't that many. (I had to look it up).
But if I look at a sample exam and find out it is all FizzBuzz then I will have a little weep for the children.
How many years has slashdot been around, and how many years spent arguing about silly little things like this?
Yes, CS was harder when you were in college. Yes, people were smarter back then too. There are 2 orders of magnitude higher enrollment in Computer Science programs than there was 20 years ago. You're bound to get a lot of people who haven't quite figured out if this is the place for them yet.
Also, the readability of the summary is approaching zero as well. If I wanted a recap of tweets, I would have just clicked on the links.
Why is the entire test in Java? Not Javascript but actual Java. I mean, at least it's not .NET or C# (aka, platform specific).
Yes. Previous years scores are contained in a linked list. All you have to do is ...
Sorry about that.
Have gnu, will travel.
Why not Java? They have to pick some language, and Java has a wide array of IDE's, many of which will run just great on whatever ancient Windows boxen a school can scrape up, an extensive textbook infrastructure, a decent number of people that know it, and the ability to implement (in a straightforward manner) most of the concepts you need to teach in a high-school CS class. It has it's quirks, but I'd prefer it to C++.
Yes, a full CS curriculum uses several languages in order to teach different concepts, but that's just not possible within the confines of a couple High School courses.
When I did AP CS in the early 90's, it was Pascal all the way... it had a very easy to learn syntax, but didn't have enough modern language features (like OOP) that the folks in my college's CS program that had passed the AP test were really hurt when their follow-on classes assumed they both knew C++ already and that they had some familiarity with OOP. (I didn't pass the AP CS test due to my brain being fried from a brutal AP US History test that morning.)
No offense, but this is a shit summary.
I'm not even going to bother to parse it out or read the article, I have all the word-salad I need at the moment.
Just cruising through this digital world at 33 1/3 rpm...
Normally I agree with complaints abut summaries, but this time I found the summary somewhat terse but pretty clear. I guess you were looking for definitions of some of the terms used?
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I'm on the autism spectrum, and I see "private member variables with no setters" as more than likely a class representing an immutable value, such as a decimal floating point value, a big integer value, a date, a string, or whatever. An immutable class sets its fields in its constructors, and then various getters return various transformations of these fields.
Then I read the article, and I was right: sparse array entries are immutable. But the real WTF is that sparse array entries are stored in a List, not a Map. The getValueAt method in a sparse array backed by a List are O(n), whereas it'd be O(log(n)) if it used a Map.
"Working programmers" don't need degrees in computer science. They need diplomas or certificates in programming.
If there are 90 people with a certificate in programming applying to a position and 10 with a B.Sc. in computer science, which resumes will HR prefer?
yeah here's the C++ implementation:
#include "my_header.h"
int main(int argc, char *argv[]) {
DO_IT();
}
My solution is best because it is the most readable and easiest to understand. There is only one line of actual code. All of the details are handled by the preprocessor.
I think you've been watching a bit too much Shia LeBeouf...
Compilation failed: my_header.h: no such file or directory
I took my AP computer science test way back in 1986 and while I don't have the test with me, I certainly remember it being A LOT harder than this. I could've finished this test in 20 minutes or so. Did I get better with age? Am I overestimating my high school computer science abilities? Or, have the standards fallen?
But what defines a "decent GitHub folio"? Does work in other programming languages count? Does work in other subfields of software engineering, such as video games vs. accounting software, count?