Yeah Comp Sci was a new department at my Uni when I went there, and they didn't have the program figured out yet. So first year we had to do everything in Pascal. Second year they decided to switch to C, so we had to write everything in that. Third year they realized an object oriented language might be good to teach, so we had to do everything in C++. Last year we were doing stuff in Java.
As disorganized as it was, in the end I learned more about the concepts better than I would have if they stuck to one language all the way through. Nowadays I work mainly with C# (it pays the bills) but I never took any classes in it. Just google how to do whatever concept and get the specific syntax for the language and you're good to go.
Programming is the easy part, and a useless skill on its own.
What? Even if design and implementation are also important that doesn't mean programming is useless on its own, and I would say that if your goal is to create a program then programming is probably the most important skill you need.
If you can only program in one language, you can’t program.
This some kind of weird gatekeeping? If I get hired to program in Python, and know no other languages, I am still a programmer.
C++ is the single best language to learn programming.
Says who? What's your goal of learning a programming language? This is a silly statement.
Stupid mistakes you make are not bugs, at least not for you.
Funny, I think C++ is literally the worst language to learn programming. I would go with JS or OCaml at first, then Rust if they need manual memory management.
I thought about explaining why, but ultimately decided against it. Felt like it would take much of the hotness out of the take :D
My rationale is that C++ not only implements pretty much every concept there is, it allows for high- as well as low-level programming. That way you can learn bottom-up or top-down... Or both! Whatever suits you. You can also use it for pretty much anything and natively on pretty much any platform. That's especially great for students with tons of different devices who don't know what they want to do later. And it has a lot of strange, basically deprecated stuff built in you can use as curious examples and to make the learning process more interesting.
Finally, if you can deal with C++, you can deal with anything. It is a horrible yet beautiful language.