C++ and Java are fine to be taught in a vocational context, but not as a CS major's main intro languages.
More to the point, C++ and Java were "invented" to be workhorse "vocational" languages. Java introduced C++ syntax and purposely bastardized Java from being a pure OO language with the requirement to appeal to engineers with C++ backgrounds. This is the main reason they are less fun and so many don't like them. This doesn't make them bad languages. But it is most certainly a turn-off for many learning CS in college.
Best languages to learn with your CS undergrad: C, Pascal, Smalltalk, Scheme, Lisp, Haskell, Prolog, Fortran, Forth. Thats a good starter list. You can add more to this list, but don't bother adding Java or C++ until you need to get a job in the field using it.
Comments
C++ and Java are fine to be taught in a vocational context, but not as a CS major's main intro languages.
More to the point, C++ and Java were "invented" to be workhorse "vocational" languages. Java introduced C++ syntax and purposely bastardized Java from being a pure OO language with the requirement to appeal to engineers with C++ backgrounds. This is the main reason they are less fun and so many don't like them. This doesn't make them bad languages. But it is most certainly a turn-off for many learning CS in college.
Best languages to learn with your CS undergrad: C, Pascal, Smalltalk, Scheme, Lisp, Haskell, Prolog, Fortran, Forth. Thats a good starter list. You can add more to this list, but don't bother adding Java or C++ until you need to get a job in the field using it.