> ... was a healthy debate about whether the typical CS curriculum helps a modern software engineer at all. Some thought the degree was stuck back in the 70's. Others thought there was value, but had trouble articulating it.
I'll try a resolution of this dilemma: A few years ago I was talking with a university CS (computer science) prof, and his fast reaction was, IIRC, "The purpose of computer science is to identify the fundamentals of computing." I.e., make a scientific study of computing and find its basic laws.
E.g., there is the subject of computational time complexity that for a given operation tries to find the fastest possible algorithm. Turns out, this is not an easy subject, e.g., we are still struggling with the question of P versus NP; a lot of well informed people believe that solving that problem would be a biggie.
My guess is that the issue is cultural in that Einstein's E = mc^2 was seen as fundamental to the universe and other fields of research would like to get results also at that level of importance, fame, prestige, whatever.
So, apparently in computer science making a scientific or engineering study of software engineering mostly loses out to pursuing some version of E = mc^2 for computing. E.g., one such result was the Gleason bound (in the Knuth volume on sorting and searching in his The Art of Computer Programming) that shows that O(n log(n)) is the fastest possible worst case sorting of n items by comparing items (records, keys, ...) two at a time.
One response is that if medical schools were run like research university computer science departments, then no one would want to go to a hospital no matter how badly they hurt! I.e., a researcher deep into P versus NP might have never had occasion to use containers, Lisp, RUST, or even SQL.
Of course, in medicine we have some medical schools in university research teaching hospitals where some of the best medical research is done. And it is easy for a practicing physician to conclude that mere clinical experience is not enough for the needed progress and that fundamental research in biochemistry, cell biology, DNA/RNA, the immune system, etc. is necessary, crucial, and really the best hope for the needed progress.
So, it is fair to say that software engineering could be taught like medicine, not just as introduction to research but for practice, clinical practice, professional practice. E.g., if want to be the CIO of a large bank, insurance company, shipping firm, on-line retailer, etc., then how to manage an information technology (IT) department with 2000 employees to do well on data security, reliability, performance, software quality, software documentation, software system designs and revisions, growth, system management, etc.