Based on my 10 years of interviewing people no one with or without a CS degree can discuss any of those things. I'm usually happy if they know what a hash table is and roughly how it works.
I find this surprising. Maybe because we covered some of those topics in first year, and, as a second-year student, they're still fresh in my mind, but I simply can't see how someone who completes a CS degree would be ignorant on all of them. For the same reason, I can't see how fizzbuzz is a useful test. It was the very first thing we learned to program in our intro CS class. I'm not from a top-ranked school, and while we tend to do fairly well in competitions, we certainly aren't renowned for our CSc program.
I don't know whether to feel encouraged or discouraged when reading articles and comments like this. Are there truly that many incompetent CS grads and/or insufficient programs out there?
I think being able to google your way out of a problem is worth more than being able to grag a grid to a form, drag a query to a grid and call it a day...
Why should I have to spend Googling for how to write a H264 decoder when I can just drag one, written by people who know it really well, onto my surface?
I know that a lot of people like to argue that these people "don't understand what they're doing". Most Ruby developers don't understand much below a single level of abstraction presented by the language either.
Well, if they can't discuss those things (and an awful lot more) then they don't have a CS degree - they might have some programming qualification, but they don't know about CS.
I don't know whether to feel encouraged or discouraged when reading articles and comments like this. Are there truly that many incompetent CS grads and/or insufficient programs out there?