No, but I would expect that anyone graduating with a degree in Computer Science would have some familiarity with the fundamentals of programming, and those would include pointers and basic data structures and algorithms. Unfortunately, this doesn't seem to be the case for a good portion of graduates anymore. "

You're right. Take into mind the word "algorithm" - it's much older than the 19th century, but it's essential to understand what is meant by it when you're doing serious programming work. As well as concepts - linked list, stacks, trees, enumerations, arrays, even pointers and memory addresses - that are important, it may be possible that a programmer never has to implement something such basic on his own, but it's neccessary that he understands what's going on "under the hood", so if problems occur (and they usually will), he has a clue about how to solve them. Surely, this is often considered "old-fashioned" or "unmodern" by many novice programmers who know how to click in "Visual BASIC" and consider themselves geniuses. But when you need to optimize code, you're thinking in "old-fashioned" categories like exponential complexity, iteration loops or memory layout.

Furthermore, I agree with your consideration that today's educational concepts in computer science don't seem to put much emphasize on teaching basic concepts. But finally, it's these basics that enable you to understand how things work. But if you're just keen on a BA, MA, Dipl.-Inf. or some other degree that you can show around, while treating your PC as a worse typewriter, it should be sufficient. :-)

it may be possible that a programmer never has to implement something such basic on his own, but it's neccessary that he understands what's going on "under the hood", so if problems occur (and they usually will), he has a clue about how to solve them.

Right. The higher level abstractions provided by languages like Java and C# are useful, but you still need an understanding of what's going on underneath. Otherwise, how do you choose between structures like HashMap and TreeMap or ArrayList and LinkedList?

Surely, this is often considered "old-fashioned" or "unmodern" by many novice programmers who know how to click in "Visual BASIC" and consider themselves geniuses.

Except that today, the "disease" is carried by Java, and it's even worse because the whole thing has been institutionalized by the educational system. I don't blame Java itself-- it's a perfectly fine language if that's your cup of tea, but it is the current tool being used to train an army of programmers who are completely unable to see behind the abstraction.

But if you're just keen on a BA, MA, Dipl.-Inf. or some other degree that you can show around, while treating your PC as a worse typewriter, it should be sufficient. :-)

The only problem with this is that a Computer Science degree has become completely irrelevant as an indicator of someone's level of knowledge in the subject. Not that it was ever perfect, but it did, at one point, suggest some minimal training and understanding of the basic concepts.

"it may be possible that a programmer never has to implement something such basic on his own, but it's neccessary that he understands what's going on "under the hood", so if problems occur (and they usually will), he has a clue about how to solve them.

Right. The higher level abstractions provided by languages like Java and C# are useful, but you still need an understanding of what's going on underneath. Otherwise, how do you choose between structures like HashMap and TreeMap or ArrayList and LinkedList?

Surely, this is often considered "old-fashioned" or "unmodern" by many novice programmers who know how to click in "Visual BASIC" and consider themselves geniuses.

Except that today, the "disease" is carried by Java, and it's even worse because the whole thing has been institutionalized by the educational system. I don't blame Java itself-- it's a perfectly fine language if that's your cup of tea, but it is the current tool being used to train an army of programmers who are completely unable to see behind the abstraction.

But if you're just keen on a BA, MA, Dipl.-Inf. or some other degree that you can show around, while treating your PC as a worse typewriter, it should be sufficient. :-)

The only problem with this is that a Computer Science degree has become completely irrelevant as an indicator of someone's level of knowledge in the subject. Not that it was ever perfect, but it did, at one point, suggest some minimal training and understanding of the basic concepts. "

This is complete BS. So Java programmers dont know whats underneath? Come on, the Java API is know by most programmers. Ever thought of Certifications? I'm a Sun Certified Programmer and Web Component Developer. Dont tell me I dont know when I need a HashMap or a TreeMap. I've got a Bachelor degree in Software Engineering, but I also do my certifications so what are you talking about? Also 10 years of experience helps to develop yourself as a programmer.