I'm a university professor in CS. I don't teach people how to problem-solve, and I have never known what other people are talking about when they claim they teach that in their courses. I teach fundamental skills, and then I put my students in front of lots of problems. In an ideal world, they transfer that experience to new problems. My most important role is providing the motivation and structure to go tackle assignments that might be similar to the ones they tackle later on in their careers. I really like Amy Ko's take on the process:
https://medium.com/bits-and-behavior/the-transfer-problem-in...All of that pales to the real process going on: good students were matriculated into my program, and I credential them via a bunch of assessments that I wrote despite never having any classes on formal assessment design. If you gave us a random sample of the population, I doubt we'd be that great at turning them into Computer Scientists.