I still think C++ is a better language to teach at universities than Java or C#. I dread to think that there are students who finish their basic programming course and don't know what pointers are.

Remember Computer Science at a University science is not aimed at preparing you to get the best possible job in business. It's aimed at preparing you for academia. As such I don't believe real-world relevance of a language is all that important.

Java is an excellent language to teach the concepts of object oriented programming. It's very clean and purist in that respect. If you want your students to get a better idea of how a computer actually works, C++ would win. Heck, do both! My university's main programming course was in C++, but we had another course which just introduced you to a whole bunch of different languages just to show you what's out there and the differences (and similarities!) between them (from Prolog to Lisp to Java to Javascript). Then we had a course describing the underlying design principles of programming languages in general. Anyway, you get the point.

No matter which path you take to the top of the mountain, in the end we all look at the same moon (Zen saying).