I do believe, based on what I've seen, that not enough institutions teach problem solving in general enough of a way to be applicable to building applications.
That's a different statement than your original. Your complaint is that people aren't leaving school as fully trained software engineers. I think you will find the same is true in all engineering disciplines: school teaches you the fundamentals, but you have to learn on the job how to be a practicing engineer.
Also, none of my programming projects were anything like focusing "on the same algorithms over and over in a dozen or two languages." Programming intensive courses focused on how to design programs, while introducing new concepts that allowed us to design a larger set of programs.
That's a different statement than your original. Your complaint is that people aren't leaving school as fully trained software engineers. I think you will find the same is true in all engineering disciplines: school teaches you the fundamentals, but you have to learn on the job how to be a practicing engineer.
Also, none of my programming projects were anything like focusing "on the same algorithms over and over in a dozen or two languages." Programming intensive courses focused on how to design programs, while introducing new concepts that allowed us to design a larger set of programs.