|Thank you for getting to the impracticality of it in an undergraduate degree.
My Degree is Computer Science, and I earned a BSE. The E came from the math and physics of it.
It is earned through the college of Engineering. This was 1992, Michigan State University.
We studied Computer Programming and Software Engineering Concepts. I stress the Concepts.
Software should work repeatably. We learned the Waterfall approach (literally at the time the only approach discussed outside of "ad hoc" which was shunned, but recognized as how we do programming for all of our classes, LOL).
Roughly stated, We had to cover:
- General Programming, algorithms, data structures, theory on problem solving, etc (Pascal)
- Write C/Assembler (Motorola).
- Write an Assembler, in C (literally the next course)
- Write a compiler, DB Engine and/or an AI program (in LISP no doubt)
We had to CARRY our code from trimester to trimester, to teach us a lesson that bad code begets big problems when you add more functionality to it! A valuable lesson in deed!
And then we graduated...
I have absolutely no idea where you would INJECT the 2-3 years it would take to make someone a Professional Software Engineer in that environment. And given the choice, I would rather be a CODER who can actually solve problems, use References (patterns, later, after I graduated) and the like.
Finally, we have an astounding shortage of programmers and programmer/analysts going into and coming out of the Universities. The graduating classes were shrinking as I was graduating. The kids don't have the math and problem solving skills coming out of High School. One of my friends flunked out because he could not get passed the Calculus Based Physics. He writes software without a degree and does a pretty decent job.
We have a MANAGEMENT problem whereby management does not understand that Designers should Design. Engineers should Engineer and Developers should code! Most small companies I see can barely afford ONE of these guys (and I see many who actually TRY TO HIRE the CHEAPEST ONES, LMAO!), much less hire the team.
The owners/managers think that because they can explain it, it can't be that hard. They don't need to pay to have an ENGINEERED solution. Sometimes they are right. Mostly not. Not in the long term. But I don't think 80% of the software written would have been started if the COSTS were known up front!
Everyone wants software that pays for itself immediately these days. Not even a 3 year payback. It reminds me of Hollywood where they build props. They LOOK REAL in the movie, but the metal is really just WOOD with paint. Management wants the cheapest solution they can get. I can't fault the programmers who are not in an environment that practices the proper approaches to software development and engineering...