When I was in college, we also followed a "traditional" CS curriculum. The introductory language was Scheme. The language in core courses was C. Advanced courses used whatever was best for the course, usually C or C++. Many of the courses have had the same problem sets since 1985.
At the time, students had problems with it because "how are we supposed to build apps with this knowledge?!" There were even student efforts to "modernize" the curriculum by supplementing it with student run workshops on app building (which actually did really well).
Personally, I really appreciated the curriculum. I was a self taught programmer going into CS, having done lots of web dev and automation stuff with PHP / Python. And I was really cocky about it. But as my adviser told me on my first day, "yes, you're a programmer, but you are not yet a computer scientist." I knew nothing about Computer Science, and had never touched a low level language, because I had no practical reason to. The next four years were valuable for me because they forced me to learn about topics that I will never teach myself.
And you know what? By the time I graduated I was fully proficient with git, python, Javascript, bash, and a whole bunch of other tools and concepts, despite the fact that no class forced me to learn them. I picked them up from working with others, scripting tests for my assignments, and my internships. It also helped to have the foundation of lower level knowledge. It's a lot easier to understand the "magic" of your scripting language when you have an appreciation of what it's actually doing underneath the hood. It's easier to understand bash when you've written a shell in C. Etc.
For me, this approach worked well. School taught me the fundamental concepts that haven't changed since 1985, which means they probably won't change much by 2054, either. Who knows what industry will be using in 2054? I appreciate that the school curriculum prioritized core, fundamental concepts over tooling trends and the language du jour. Yes, it's important to learn those practical skills, but they'll come with practice and experience in industry (especially if you have 3 internships); there's no need to take a class on them. And when the next one comes along, you can learn it in a week. Your knowledge of the fundamentals will help.
Honestly, this course would have been a game-changer for those of us who went to terrible colleges with minimal opportunities for internships. The disconnect between theoretical classes and practical ones was simply too vast to grasp for the majority.
You sound like one of the top tier of students, being a programmer before entering college (which I assume was a good one). There are colleges out there where the faculty have only a theoretical relation to any actual useful knowledge. E.g. my semester-long networking class actually had less content than just watching a few YouTube videos. My operating systems class had a prof who was so completely clueless about so many things I can't list them. On the first day of class, he said "There are 3 OS (sic) - Windows, Mac and Unix" and refused to believe a student who told him that OSX is a unix. My CS education is entirely self-taught as a result.
At the time, students had problems with it because "how are we supposed to build apps with this knowledge?!" There were even student efforts to "modernize" the curriculum by supplementing it with student run workshops on app building (which actually did really well).
Personally, I really appreciated the curriculum. I was a self taught programmer going into CS, having done lots of web dev and automation stuff with PHP / Python. And I was really cocky about it. But as my adviser told me on my first day, "yes, you're a programmer, but you are not yet a computer scientist." I knew nothing about Computer Science, and had never touched a low level language, because I had no practical reason to. The next four years were valuable for me because they forced me to learn about topics that I will never teach myself.
And you know what? By the time I graduated I was fully proficient with git, python, Javascript, bash, and a whole bunch of other tools and concepts, despite the fact that no class forced me to learn them. I picked them up from working with others, scripting tests for my assignments, and my internships. It also helped to have the foundation of lower level knowledge. It's a lot easier to understand the "magic" of your scripting language when you have an appreciation of what it's actually doing underneath the hood. It's easier to understand bash when you've written a shell in C. Etc.
For me, this approach worked well. School taught me the fundamental concepts that haven't changed since 1985, which means they probably won't change much by 2054, either. Who knows what industry will be using in 2054? I appreciate that the school curriculum prioritized core, fundamental concepts over tooling trends and the language du jour. Yes, it's important to learn those practical skills, but they'll come with practice and experience in industry (especially if you have 3 internships); there's no need to take a class on them. And when the next one comes along, you can learn it in a week. Your knowledge of the fundamentals will help.