Slashdot Mirror


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

80 of 128 comments (clear)

  1. What a confusing summary! by Anonymous Coward · · Score: 5, Insightful

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

    1. Re:What a confusing summary! by Anonymous Coward · · Score: 1

      Ask an editor, if you can find one around here. It all seems to be about flashy front-end redesign instead of content now.

      Oh, and BTW you Slashdot 'designers' -- is it possible for you to fix your CSS so the story icons don't sit on top of the fucking headline when my browser window isn't full-screen? Kthxbye.

    2. Re:What a confusing summary! by Anonymous Coward · · Score: 2, Informative

      Kids are passing the AP CS test with higher scores, but nearly 50% of them cannot understand concepts that involve a slight amount of thinking. In other words, it's a shitty test or most taking it are stupid.

    3. Re: What a confusing summary! by jrumney · · Score: 1

      Alternatively, nearly half the students taking the test are far enough along the autism spectrum that they could not answer the questions about implementing getter methods when faced with a class containing private member variables with no methods to set them.

    4. Re:What a confusing summary! by ceoyoyo · · Score: 4, Insightful

      The summary is summarizing a tweet. If releasing results like that in a tweet wasn't dumb enough, summarizing it is.

    5. Re:What a confusing summary! by JustAnotherOldGuy · · Score: 1

      ^^^^^ THIS, times about a billion. Slashdice strikes again.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    6. Re:What a confusing summary! by JustAnotherOldGuy · · Score: 3, Funny

      Oh, and BTW you Slashdot 'designers' -- is it possible for you to fix your CSS so the story icons don't sit on top of the fucking headline when my browser window isn't full-screen? Kthxbye.

      Dear User,

      No. We have a firm policy geared toward fucking shit up and we're not going to stop just because you asked us too.

      Signed,
      The SlashDice Staff

      --
      Just cruising through this digital world at 33 1/3 rpm...
    7. Re: What a confusing summary! by Anonymous Coward · · Score: 1

      I've not gone back as a student, but I have taught labs and worked as a tutor. When confronted with a particularly painful examples of allegedly intelligent students acting incredibly dumb I just try to remember how I was in first year: lazy, not stupid; suffering from sever culture shock from the high-school to uni transition; severely hungover most mornings; and still getting used to being required to think about things rather than blindly recalling trigonometric identities, recipes for solving quadratic equations and such.

      Also worth noting that group projects were just as painful at uni as they continue to be at work.

    8. Re:What a confusing summary! by gsslay · · Score: 1

      It would appear that the submitter thinks all that is required to construct an article summary is to string tweets together in a single paragraph.

      It's all just words and numbers, isn't it? No suitable effort or consideration for the communication medium required. Consider yourself lucky it isn't written in emojis.

    9. Re:What a confusing summary! by Austerity+Empowers · · Score: 2

      Kids are passing the AP CS test with higher scores, but nearly 50% of them cannot understand concepts that involve a slight amount of thinking. In other words, it's a shitty test or most taking it are stupid.

      The more kids that pass the AP CS test, the more colleges that accept AP credits lose funding. It stands to reason the test is designed primarily to throw people off the boat and justify having them retake the class, setting them back between 1 and 2 semesters. In reality, in college, they will learn exactly the same stuff as in high school with probably worse teachers (or grad students).

      Now, consider that most people taking AP CS have no interest in "computer science", they have interest in computer programming, specifically the fraction of computer science that will get them the big $$$ in private industry. Very nearly no one has interest in academia (in this or any other field), for very good financial and practical reasons, yet a test is being administered to young kids with inadequate knowledge of what is important/what is not important who have been exposed to the field for, in most cases, exactly one year. The kids probably know how to write a program that will compile or otherwise execute, but have limited idea or perhaps a certain degree of animosity to academic formalism.

      Take a combination of predatorial testing, and contrasting motives and hilarity shall inevitably ensue. The best way to appreciate computer science, is similar to the best way to understanding electrical engineering: start with the useful practical things that will get them interested, show them how a bit of education improves the design & function, and get them hooked. It makes all the diffeq a whole lot easier to sit through, or in the case of CS, the algorithms and discrete math.

    10. Re: What a confusing summary! by TheRaven64 · · Score: 1

      The test says that the class with private members and no setters is intended to be immutable after creation, so that's not a problem. Having a single linked list for the entire grid (rather than a list of lists) is completely insane though. I'd expect a student who actually knew what he or she was doing to be more confused than one that would end up writing code with horrible algorithmic complexity. Looking at the rest of the test, it's not much better. If this is what AP tests look like in the USA, then I'll make sure not to weight it very highly when looking at applicants next academic year.

      --
      I am TheRaven on Soylent News
    11. Re:What a confusing summary! by HornWumpus · · Score: 1

      Artificial stupidity hasn't progressed that far.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    12. Re:What a confusing summary! by Chelloveck · · Score: 1

      What do you mean, confusing? There's a link to a jpg that has a lot of lines, and some of the lines are clearly higher than other lines so obviously that means something good.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
    13. Re:What a confusing summary! by BitterOak · · Score: 1

      Formatting what appears to be a list into one single paragraph makes it awkward to decipher.

      Maybe it's a sparse list.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    14. Re:What a confusing summary! by BitterOak · · Score: 1

      Especially when the "summary" has more than 140 characters.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    15. Re:What a confusing summary! by Cinnamon+Beige · · Score: 1

      Kids are passing the AP CS test with higher scores, but nearly 50% of them cannot understand concepts that involve a slight amount of thinking. In other words, it's a shitty test or most taking it are stupid.

      The more kids that pass the AP CS test, the more colleges that accept AP credits lose funding. It stands to reason the test is designed primarily to throw people off the boat and justify having them retake the class, setting them back between 1 and 2 semesters. In reality, in college, they will learn exactly the same stuff as in high school with probably worse teachers (or grad students).

      Actually, at least with the AP subject tests in the fields I'm used to dealing with, it's not predatory testing but the sheer lousiness of the AP system. My Gen Chem I class outright treated AP chemistry as a recommended prerequisite--it wasn't a replacement for anything you'd be taking for credit, and regular old high school chemistry was pretty much just as good. (I got through pretty happily without either.)

      Basically, at this point AP courses are designed to have a high number of people taking them and a decent pass rate, and the AP exams aren't much better. If what you're after is getting to start college with college credit already in the bag--CLEP exams for the subjects you already do know well enough to just plain test out of, and dual enrollment for subjects you don't know that well are your best bet. The dual enrollment scheme where I am currently actually lets you take college courses at the local community college for free, and since you can start it at 16 you can in theory get your high school diploma and your associates at the same time--and was instituted in part because 16-year-olds were dropping out, getting a GED, and attending college, causing the high schools to loose numbers and the funding those numbers brought.

  2. Kids don't understand sparse arrays by Culture20 · · Score: 3, Insightful

    Duh! I bet it matches up exactly with kids that don't understand pointers and linked lists. Wonder why that might be...

    1. Re:Kids don't understand sparse arrays by SenatorPerry · · Score: 4, Informative

      Link for the Lazy

      I had never heard of sparse array as a term, but we discussed the concept nearly two decades ago as a normal design process.

    2. Re:Kids don't understand sparse arrays by abies · · Score: 1

      This might be because in most places you will call them map/dictionaries (int->whatever) if they are single dimensional and sparse _matrices_ when having more dimensions.
      One in the test is sparse matrix. Calling it sparse array requires a bit of mental exercise (by having said array indexed by tuples of (x,y) instead of integers). But this probably comes from concept of 2d arrays, which are neither...

    3. Re:Kids don't understand sparse arrays by LWATCDR · · Score: 1

      For a degree in computer science you need to know sparse arrays.
      As a working programer you will almost never write one. You will use STL or some other library to handle it.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:Kids don't understand sparse arrays by Anonymous Coward · · Score: 1, Informative

      Do you think they would've gotten it if the question had called it a database of values instead of a sparse array? There wasn't even a need to know what a sparse array is in advance, as the data structure is fully explained in the question. The actual task only requires a single loop over the linked list, comparing each element to the requested row and column number, returning the value if found and 0 if the element isn't in the list. The second half of question three is just a little bit more difficult, but the first half would have gotten them at least some points.

      What this tells me is that most of the other questions were answered from rote memorization, but when a new concept is presented, they're stumped, even if it is almost trivial and everything is explained in detail. Pattern recognition.

    5. Re:Kids don't understand sparse arrays by skovnymfe · · Score: 2

      In other words you don't need a CS degree to be a programmer.

    6. Re:Kids don't understand sparse arrays by LWATCDR · · Score: 4, Insightful

      No you don't but their is value in knowing how to write one when you use one.
      It usually means you know better than reinventing the wheel.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    7. Re:Kids don't understand sparse arrays by Cassini2 · · Score: 3, Informative

      Sparse arrays is a mathematical abstraction that completely ignores the implementation details. Formally, they are any matrix that has "many" zeros (or null) values. The practical problem is that most useful optimizations around sparse arrays require closely matching implementation details against the problem to be solved. With sparse arrays, implementation details are killers.

      For instance, suppose the standard solution is adopted. The sparse array will be organized as an array of linked lists representing the rows, with each row containing another linked list that contains the individual data values. What happens if you want to do a matrix multiply? A matrix multiply requires a column by row lookup and a row by column lookup. One will be an O(1) lookup, and the other will be a O(n^2) lookup. This makes a full matrix multiply an O(n^5) operation, and memory is the least of everyone's worries.

      To optimize the code, it is necessary to look closely at how the matrix will be built and used. However, as soon as that starts happening, the matrix multiply decomposes into a bunch of specialized matrix operations. At this point, the abstraction starts falling apart.

      For example:
      a) Assume the multiplication involves a diagonal matrix. Then the optimum solution is to store the diagonal matrix as a 1xn matrix, and specialize the matrix code. This was the favoured approach from numerical methods in C and Fortran.
      b) Assume the multiplication involves a tridiagonal matrix. Then the optimum solution is to store the tridiagonal matrix as a 3xn matrix, and specialize the matrix code. Again, see numerical methods in C and Fortran, or just about any good matrix library.
      c) Assume the matrix operation involves a "control-systems" style matrix. One populated row, followed by a diagonal series of rows with one or two elements. The optimum solution is to develop specialized code. For most control systems problems, this matrix never changes.
      d) Control systems often have a compact matrix representation involving a series of matrix multiplies. However, if the matrix multiplies are analysed, they become a much simpler sequence of equations that can often be executed in O(n^2) time instead of the longer O(n^3) time of the matrix multiplies. As such, develop specialized code. Both MatLab and Mathematica have functions where numerical operations can be broken down into there constituent formulas and saved as "C" code.
      e) Assume we really need to frequently multiply a truly sparse array. Then build two sets of linked lists, one organized by row/column and another organized by column/row. Then both the row and column lookups can be done as an O(1) operation. The matrix multiply is a O(n^3) operation.
      f) Just because the inputs to a matrix operation are sparse, doesn't mean the output array is sparse. I'm thinking of Singular Value Decomposition, some matrix multiplies, matrix inverses, matrix pseudo-inverses, and covariance matrices. Also, some matrices that appear in Quantum physics. In this case, matrix operations need to be further specialized to deal with creating non-sparse matrices from sparse-matrices. Additionally, some matrices may need to be rounded to sparse, even though they may be fully populated, like some covariance matrices.

      In the end, sparse matrices are simply a descriptive term for a bunch of application-specific optimizations. Sparse matrices devolve into numerical optimizations that no-one cares about unless they are looking at an application that requires the specific numerical optimization. I'm not surprised high-school CS coders don't "understand" them.

    8. Re:Kids don't understand sparse arrays by Anonymous Coward · · Score: 1

      Yes, lack of knowledge does not prevent you from getting a job. But it does prevent you from doing that job well.

    9. Re:Kids don't understand sparse arrays by ceoyoyo · · Score: 1, Insightful

      "Working programmers" don't need degrees in computer science. They need diplomas or certificates in programming.

      Even so, it's not a bad idea to know something about the tools you're using. Perhaps knowing something about how those vertices are stored might help write efficient code for manipulating them?

    10. Re:Kids don't understand sparse arrays by FranTaylor · · Score: 1

      They need diplomas or certificates in programming.

      If they don't understand mathematics or computer systems design then their code will be useless

    11. Re:Kids don't understand sparse arrays by mrhippo3 · · Score: 1

      Engineer here with a lot of experience with Finite Element Analysis software. Sparse arrays are NOT some amusing construct to see how well you code an obscure problem. FEA is *THE* tool to create a design that is less likely to fail. Programs such as ANSYS are used design just about every single vehicle on the road (cars, trucks, bicycles), airplanes -- the airframe and the engines, locomotives. And FEA is also used to design bridges, buildings, cranes used to build this stuff. The use of sparse matrix algorithms enable this software to get results in a reasonable time frame. As mentioned elsewhere, sparse matrices are very useful in design optimization, which is frequently coupled with FEA.

    12. Re:Kids don't understand sparse arrays by Simon+Brooke · · Score: 1

      What happens to your 'standard' linked lists solution when you have ten values scattered over an array which is 1000! (factorial 1000) in each dimension? For most genuinely sparse arrays, a hashmap is a better approximation of an efficient implementation. Of course, there will be corner cases where you want to do something different, but linked lists strike me as an extremely poor solution except in arrays where more than about 10% of cells have data.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    13. Re:Kids don't understand sparse arrays by Coryoth · · Score: 1

      It all depends on what you want to do with your matrices. Various operations have various costs in different sparse matrix formats. The standard ones are COO or coordinate format: a list of triples (i, j, val); DOK or dictionary of keys format: the hashmap you are thinking of; LIL or list of lists format: a list for each row and a list if pairs (j, val) in each list entry; CSR/CSC or compact sparse row/column: an array of indices where each row starts, an array of column indices and an array of values.

      COO and DOK are great for changing sparsity structure; LIL is very useful if you have a lot of row-wise (or column-wise) operations, or need to manipulate rows regularly. CSR is great for matrix operations such as multiplication, addition etc. You use what suits your usecase, or change between formats (relatively cheap) as needed.

    14. Re:Kids don't understand sparse arrays by jc42 · · Score: 1

      They need diplomas or certificates in programming.

      If they don't understand mathematics or computer systems design then their code will be useless

      But note that the question wasn't about understand mathematics or computer systems design; it was about diplomas or certificates in programming. It's fairly well understood that those are orthogonal quantities. ;-)

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    15. Re:Kids don't understand sparse arrays by jandrese · · Score: 2

      No, but you will need the CS degree to be a good programmer. If you know what is going on under the hood you can avoid those O(N^5) operations that make your code inefficient. If you just blindly use whatever looks vaguely correct in the standard library you'll never know why your code is so slow.

      --

      I read the internet for the articles.
    16. Re:Kids don't understand sparse arrays by mbkennel · · Score: 2

      I think the poster above clearly understood the problem domain, in that the most common uses for "sparse array" is a "sparse matrix" for numerical computations.

      And moreover, as is the case, the problem domain of matrix computations is known to be deep and problem-dependent, with a wide variety of representations and solution categories.

      | But by all means, go ahead and implement your own formats for each of the various types of sparse matrices you are likely to encounter. Then optimize operations for each. Then implement complex algebra (eigenvalues, svd, QR, the works). In the end, hope that your brand spanking new wheel has no corners and works for enough use cases to justify not employing a standardized wheel. A smarter person than me said something along the lines of premature optimization and evils, but I suppose it does not apply to your brand of genius.

      I see an unjustified insult against the previous poster.

      The various cases and solvers have already been implemented in many important software packages for different domains, and given the centrality of matrix operations in high performance computing, this is not a premature optimization but rather the essential, core implementation and algorithmic optimization flowing from the proper mathematical treatment of the problem.

      And his point was not at all to re-do everything yourself, but to be aware that there are in fact many varieties of sparse matrices in various settings and that this is not just a software-abstraction problem but a key mathematical problem, and there is no simple over-arching software abstraction that works well universally. The post described well-established problem domains with high-quality solutions.

      Simply being aware of this not-always obvious fact is an example of scientific maturity.

    17. Re:Kids don't understand sparse arrays by Chelloveck · · Score: 1

      That wikipedia article is horrible.

      You know the nice thing about Wikipedia? When you find poorly written or factually incorrect articles you can actually do something about it instead of just whining about it on an unrelated website.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
    18. Re:Kids don't understand sparse arrays by Cassini2 · · Score: 1

      Thank you.

      You put it better than I did.

    19. Re:Kids don't understand sparse arrays by Gazzonyx · · Score: 1

      That wikipedia article is horrible.

      You know the nice thing about Wikipedia? When you find poorly written or factually incorrect articles you can actually do something about it instead of just whining about it on an unrelated website.

      The other nice thing about Wikipedia is that the original author can be notified via RSS/ATOM that someone has changed their factually incorrect page and they can revert it in moments. A lot of people whine about that on unrelated sites because they're done spending their own free time fighting over fiefdoms when they can say "screw it" and just not hire people that come to an interview armed with whatever they read on Wikipedia.

      What I'm saying is, while your solution absolutely makes sense in theory, many have found it unsatisfactory in practice but the flip side is that it retains a positive value as a filter; for that we thank the people that insist on misinforming whomever believes that a wiki is an authoritative source.

      --

      If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.

    20. Re:Kids don't understand sparse arrays by ceoyoyo · · Score: 1

      Not necessarily. It doesn't take much math to be able to do probably 99% of the programming the world demands today. System design should probably be (and probably is) left to systems architects who have a better understanding of it than the rank and file code monkeys.

      If you want to be a system designer/architect/whatever, you maybe should have a degree in software engineering. If you want to be a code monkey a diploma where they ensure that you can write Java, C, add, subtract and multiply is handy. Computer science is a different thing (I realize that "computer science" in the US actually isn't a different thing).

      My computer science degree consisted of a lot of math classes and things like experimental OS design, formal proofs and complexity analysis. I was too early for all the quantum stuff they do now.

  3. Jeez, sparse arrays, really? by Daniel+Hoffmann · · Score: 1, Informative

    That is like the second easiest pointer-driven data structure...

    1. Re:Jeez, sparse arrays, really? by Shoten · · Score: 1

      It's a map, with its keys constrained to numbers.

      JavaScript arrays are actually sparse arrays. Under the covers, they are implemented as maps.

      Apparently, Wikipedia editors don't get sparse arrays either...because they define them as arrays where almost all of the values are 0 or null.

      --

      For your security, this post has been encrypted with ROT-13, twice.
    2. Re:Jeez, sparse arrays, really? by BlueMonk · · Score: 1

      From the user perspective, I think Wikipedia is correct. To any coder using a sparse array, it just looks and acts like an array where most of the elements are 0 or null. From the implementation perspective, when you know this is the case, there are some optimizations you can make to significantly reduce the memory usage of such a structure, which is why the term "implementation" was used to describe sparse arrays' relation to maps. Internally sparse arrays are implemented as maps so that space doesn't need to be allocated for all those zeros. Although a sparse array's implementation doesn't define it, it is a notable detail about how they are generally implemented. So if you want to split hairs on the definition of "is", Wikipedia probably has a better definition, but it's also not incorrect to say that they are implemented as maps.

    3. Re:Jeez, sparse arrays, really? by Daniel+Hoffmann · · Score: 1

      Well that is the way I learned it, one way to implement them is using a linked list for each row (or column) of the array (skipping the null/0 values each element storing its index). It was a footnote on my data structures class, maybe that is why students failed the test, the professors did not bother teaching sparse arrays.

      For example
      0 0 1 0
      0 0 0 0
      3 0 4 0
      0 0 0 5

      in a sparse array implemented with linked lists would be:
      L0 -> (2: 1) -> null
      L1 -> null
      L2 -> (0: 3) -> (2: 4) -> null
      L3 -> (3: 5) -> null

  4. Yeah, well... by Psychotria · · Score: 1

    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.

    1. Re:Yeah, well... by jeremyp · · Score: 1

      I had a look at the question. It explains exactly what a sparse array is and even tells you how it wants you to implement one (essentially as a linked list). The question involves writing the functions to access elements of the sparse array. Given the details provided, I'd be really disappointed if any programmer familiar with the concept of a linked list failed to complete the exercise satisfactorily.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    2. Re:Yeah, well... by Psychotria · · Score: 1

      I just had a look as well. The proposed solution is a linked list of linked lists isn't it? Perhaps this is the bit the kids are stumbling over.

    3. Re:Yeah, well... by Psychotria · · Score: 1

      That's not a particularly efficient sparse array implementation. Although I guess the question doesn't require efficiency.

  5. Let's go sparse on the "Tweetstorms" by xxxJonBoyxxx · · Score: 1

    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?

  6. Re: Here's your chance Slashdot by Anonymous Coward · · Score: 1

    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.

  7. I had to look up sparse array by EmperorOfCanada · · Score: 1

    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.

    1. Re:I had to look up sparse array by ceoyoyo · · Score: 1

      Implement it as a k-d tree and see if any of the examiners can follow your solution.

    2. Re:I had to look up sparse array by EmperorOfCanada · · Score: 1

      Seeing that when I was young and my computer (VIC-20) was crappy, I hand wrote assembly on paper and then inputted it. So in the case where they are looking for Java solutions, give them handwritten bytecode.

    3. Re:I had to look up sparse array by AuMatar · · Score: 1

      Would you really expect more? This test isn't a test for college grads- its a test for high school seniors to get them out of 1-2 semesters of bottom level CS courses, by proving they already know the basics. The point isn't to trick them or to expect them to know everything, its to see if they can save some time/money on intro level topics.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    4. Re:I had to look up sparse array by EmperorOfCanada · · Score: 1

      I was quite pleased with the level. I actually expected either something very pedantic or something so easy that I would have a little weep.

      If anything the main problem that I have is that I have met CS grads who might not do so well on that exam. I am not saying it is too hard but that the aforementioned CS grads sucked.

  8. oh goodie slashdot tradition continues by Anonymous Coward · · Score: 1

    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.

  9. Why Java? by RogueWarrior65 · · Score: 1

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

    1. Re:Why Java? by swilver · · Score: 1

      ...because teachers need to be able to decipher the code afterwards.

    2. Re:Why Java? by Theaetetus · · Score: 1

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

      Well, I tried turning in my answers in Whitespace, but I got a zero.

  10. Re:Finding old AP CS Results by PPH · · Score: 1

    Yes. Previous years scores are contained in a linked list. All you have to do is ...

    Sorry about that.

    --
    Have gnu, will travel.
  11. Why Not Java? by sirwired · · Score: 2

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

    1. Re:Why Not Java? by Chaos+Incarnate · · Score: 1

      When I took it in 2002, it was C++ at the time. I think they switched to Java a year or two later.

      --
      Benford's Corollary to Clarke's Law: "Any technology distinguishable from magic is insufficiently advanced."
    2. Re:Why Not Java? by Gazzonyx · · Score: 1

      When I took it in 2002, it was C++ at the time. I think they switched to Java a year or two later.

      You're close. I took the AP test the last year it was C++. I was also taking Java with the same instructor, same room, the next period, so I kind of had the best and worst of both worlds. But the instructor was top notch and is regionally well known - I'm very sure he was the primary factor in nearly all of his AP students both passing the AP test and having a job in the industry. Those two classes got me through my first two years of college and put me in a unique position for learning low/high level languages ever since.

      That was 2003 when even the standard library was not nearly as defined and the boost/twisted libraries were still in their infancy. 2004 was the first year the AP comp. sci test was in Java and, IIRC, it was Java 1.4 when it was still reasonably fresh. These days I use primary Java and stumble through a handful of dynamic languages on an every day basis, but C++ still holds a special place in my heart - it's a shame I can't realistically use it in our production code; I really miss it.

      --

      If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.

  12. Craptastic Summary by JustAnotherOldGuy · · Score: 2

    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...
    1. Re:Craptastic Summary by Chelloveck · · Score: 1

      Read the article? There is no article. There are six tweets (numbered and linked individually), a graph with data sets helpfully labeled "1", "2", "3", "4", and "5" but no other description, and a PDF of the test questions. And some comment about students not understanding the concept of "sparse arrays", but since the term is completely defined in the test materials I can only assume the real concern is that students can't be bothered to read the "unimportant" introductory material before trying to answer the actual test questions.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
  13. An indicator of your test results possibly... by SuperKendall · · Score: 1

    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
  14. TRWTF: List is used instead of Map by tepples · · Score: 1

    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.

    1. Re:TRWTF: List is used instead of Map by Simon+Brooke · · Score: 1

      Sparse array entries, in general, are not necessarily immutable, although they may be so in this case. Most spreadsheets are implemented as sparse arrays, for example. But your point about the benefit of a map is well made.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    2. Re:TRWTF: List is used instead of Map by Simon+Brooke · · Score: 1

      I should have read the linked questions before replying...

      Stupid, stupid, STUPID! Why have numRows and numCols in a sparse array? Things with unnecessary, arbitrary bounds annoy me. My implementation of Conway's Game of Life runs on a sparse array precisely because that allows the world to stretch arbitrarily in any direction a glider goes, limited only by the capacity of the bignum library and the total store available to the program.

      And this is how we teach computer science?

      Sigh.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    3. Re:TRWTF: List is used instead of Map by tlhIngan · · Score: 2

      Stupid, stupid, STUPID! Why have numRows and numCols in a sparse array? Things with unnecessary, arbitrary bounds annoy me. My implementation of Conway's Game of Life runs on a sparse array precisely because that allows the world to stretch arbitrarily in any direction a glider goes, limited only by the capacity of the bignum library and the total store available to the program.

      Easy. How do you test that you're handling boundaries correctly?

      I mean, yeah, your bignum goes from negative infinity to positive infinity. But what happens as you approach those numbers?

      Also, how do you test that you're not arbitrarily limiting the results? More than one program has been caught in the 32-to-64 bit transition because they cast pointers to uint32's. (Enough that there's "uintptr_t" which is an int type big enough to cast a pointer to).

      So why not have a way to arbitrarily limit the size? Even better, add in the ability to adjust the boundaries. That way you can do testing on small, easily testable and quickly reproducible array sizes and nail down the most common bugs you'll encounter (especially ones that require wrap around handling), before you run more extensive tests.

      Plus, constants can be changed. One common test would be to change numRows and numCols and rebuild/re-run the test and make sure it handles the new value successfully and that it still works. You know, to make sure values like that aren't hard coded. (You may laugh, but enough people code "C:\Windows", or "C:\Program Files", to matter. It's basically assuming a constant will stay, well, constant, instead of checking. Apple threw Square Enix for a loop because Apple renamed the documents folder for storing volatile per-app content. Square Enix hardcoded their paths (despite Apple telling people HOW to do it properly), resulting in app breakage. Even worse, Square Enix's solution was "do not upgrade your phone/tablet". Apple threatened to withdraw their apps because of complaints, and within a week, new versions were released).

      So yeah, you may use bignums, but maybe someone internally decided 32 bit ints were good enough, because well, it's a test app and no one was going to actually run it long enough to verify. (Funny, in production, how often people hit limits we think are "too big"... see IPv4. Windows' 49 day bug, etc).

    4. Re:TRWTF: List is used instead of Map by tepples · · Score: 1

      Sparse array entries, in general, are not necessarily immutable, although they may be so in this case.

      The interface in the PDF describes a mutable sparse array with immutable entries. To assign a new value, you'd delete the entry and then add a new one.

    5. Re:TRWTF: List is used instead of Map by dmiller1984 · · Score: 1

      I teach APCS, and Maps are not a part of the tested curriculum. Maps in college are usually covered in a data structures class, not the intro CS class that APCS is meant to represent.

    6. Re:TRWTF: List is used instead of Map by tepples · · Score: 1

      How the heck was I supposed to know that a 64 bit flat architecture (pointer range compare across arrays = flat arch) would someday come along that still set int to 32 bits?

      How the heck were you supposed to know that your code would run on a flat architecture? Pointer range comparison across unrelated C arrays has been undefined behavior as long as I can remember. Besides, even among flat architectures, the common ABI for the 65816 has 24-bit pointers and 16-bit ints, and the common ABI for the 68000 has 32-bit pointers and 16-bit ints.

    7. Re:TRWTF: List is used instead of Map by ShanghaiBill · · Score: 1

      How the heck was I supposed to know that a 64 bit flat architecture would someday come along that still set int to 32 bits?

      By reading the standard, which explicitly states that only a long is guaranteed to hold a pointer. Or by running "lint" which is designed to catch silly newbie errors like this. Or by not using casts when you don't understand how they work.

  15. HR is part of the problem by tepples · · Score: 1

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

    1. Re:HR is part of the problem by Rockoon · · Score: 1

      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?

      The resumes asking for the lowest wage.

      --
      "His name was James Damore."
    2. Re:HR is part of the problem by HornWumpus · · Score: 1

      The EE, if they have any sense.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:HR is part of the problem by ceoyoyo · · Score: 1

      I said need. You might want one because apparently hiring is done by people who don't know anything about the requirements of the jobs they're hiring for.

  16. Re: Here's your chance Slashdot by FranTaylor · · Score: 1

    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.

  17. Re: Here's your chance Slashdot by Tyrannosaur · · Score: 1

    I think you've been watching a bit too much Shia LeBeouf...

  18. Re: Here's your chance Slashdot by tepples · · Score: 1

    Compilation failed: my_header.h: no such file or directory

  19. This is AP? by Infiniti2000 · · Score: 1

    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?

  20. What counts in a GitHub folio? by tepples · · Score: 1

    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?