If we use the slightly better-defined term of problem solving skills, there's no worse way of teaching that than putting a teacher up in front of 20 students teaching a standardised curriculum and giving out standardised tests. In the CS context, most students first learn how to think through a problem when they learn to code. What were they doing in school? Certainly not thinking through problems.
Edit: Also you completely misunderstood the import of those two questions. Anyone with a passing familiarity with world literature can answer the Dostoyevsky question, and anyone with a passing familiarity with geography or Russian history can answer the Urals question. You're note supposed to memorise the answer, the answer comes naturally if you're not pig-ignorant about the world. I wouldn't expect most students to know them, I sure as hell would expect more than 0.00% to know them. Kids know nothing because schools imbed extreme anti-intellectualism into even the brightest of kids.