> So I believe that at least one third of a degree program like this should actually be software engineering.
How about an actual software engineering degree instead?
As others have said, it should teach interfacing with non-tech people, extracting requirements, reacting to changing requirements, and so on. But it should also teach things like source code control systems, bug databases, dealing with large long-lived code bases (go find this bug in this 1,000,000 line code base, say), what languages work best for which kinds of problems, and so on.
Maybe one third of that degree could be classical CS.
How about an actual software engineering degree instead?
As others have said, it should teach interfacing with non-tech people, extracting requirements, reacting to changing requirements, and so on. But it should also teach things like source code control systems, bug databases, dealing with large long-lived code bases (go find this bug in this 1,000,000 line code base, say), what languages work best for which kinds of problems, and so on.
Maybe one third of that degree could be classical CS.