Don't ruin your points with a nice ol' No True Scotsman. Argue for Universities to teach better CS history than to try justify some BS about how some Uni's "don't teach real CS" because they use a particular teaching tool.
As a True Scotsman I greatly resemble that remark! But seriously, tools can be an enabler or an impediment to learning as well as production.
The problem with Python, Java, etc. is that they require students to wade through vast amounts of primordial scut work (conditionals, loops, complex grammar, special forms, etc) and advanced concepts for which they aren't yet prepared and aren't necessary to get started (e.g. type systems, which are all to do with set theory and formal proofs, not about having the compiler do your homework for you). By the time they get to functions and stuff, their heads are so packed with mechanical trivia, which they've come to believe is what programming is all about, there's no room left for the actual philosophy of programming: problem solving, managing complexity, expressing yourself in a form that is understandable to other humans and not just machines.
Another commenter points at Java as an example of "excessive abstraction", which is total nonsense: Java is a perfect example of
bad abstraction, the major purpose of Java's vast, baroque class architectures being to show how incredibly clever and adept their authors are at creating complexity and managing it in their own heads,
not eliminating it (as abstraction's meant to do). (The other benefit being how it enables poor programmers to disguise their ignorance of the problem domain beneath huge impenetrable class graphs, none of which actually does anything of worth but looks very impressive to their equally useless management.) There may be many culprits encouraging and reinforcing that mentality, but it's naive not to think Java couldn't be one of them.
While linguists may argue the extent to which natural languages influence thought, I don't think anyone here would deny that our artificial (programming) languages significantly influence how we think about problems and how we can solve them. It is, after all, the major reason we create so many of them to cover so many different idioms: imperative, functional, logic, dataflow, concatenative, concurrent, etc, etc.
There are two types of programmers in this world: those that approach programming as a means towards solving real-world problems, and those who treat writing code as the end in itself. Therefore, if you want programmers who are good at abstraction, and thus good at managing and solving complex problems, don't make them wade through unnecessarily complex, inflexible languages that drowns them in pedantic micromanagement of tedious trash. All that does is drive off the sort of folk who've got more pressing things to do than shovel buckets of crap all day, while making those who do enjoy playing with crap totally at home. And then we wonder why so much software fails so miserably to meet users' needs. (Protip: study the mindset and attitude of the people who produced it, and figure it out from there.)
Grok abstraction, and you open the door to learning everything else and applying it effectively. Fail - or refuse - to do so, and best you stick to flipping ones and zeros on the front panel, which is the only thing machines care about, after all. At least it'll slow down the amount of spaghetti you dump on the rest of us in your lifetime.
