You recommend teaching Javascript or Ruby in an undergraduate Computer Science Data Structures course. Are you aware of the fact that Computer Science, as a major, is not "Learn programming"? It is learning the theory and science behind Computers, computing and programming. What you suggest is more applicable for CNIT or Computers, Networking, and Information Technology; A major where one would learn more how to apply the theories and concepts of programming. But even then, you're suggesting SCRIPTING languages for PROGRAMMING. The only thing a scripting language is good for in the education system is conveying concepts such as abstraction ( because that's practically all they are ). Java is a way better language for that.
I think instead of attempting to revamp the CS curriculum, we should work harder to portray CS for what it is, which is not "Study this and be a programmer for the rest of your life". People who come out of CS go on to do a wide array of things, programming is just a basic and necessary skill for learning and understanding computing that one picks it up. And knowing the theories and concepts really well makes good programmers, same as how knowing the fundamentals of Mathematics would produce someone who could be a good accountant or something similar.
I think instead of attempting to revamp the CS curriculum, we should work harder to portray CS for what it is, which is not "Study this and be a programmer for the rest of your life". People who come out of CS go on to do a wide array of things, programming is just a basic and necessary skill for learning and understanding computing that one picks it up. And knowing the theories and concepts really well makes good programmers, same as how knowing the fundamentals of Mathematics would produce someone who could be a good accountant or something similar.