If programmers only learn higher levels of software development, who will build the next great operating system? Who will build the compilers for the higher level languages?
Joel Splosky refers to this article and suggests creating Bachelor of Fine Arts in Software Development.
Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.