I agree that teachers need knowledge centered environments where students become metacognitive by making sense of what they are learning. This past year I had a third grade teacher incorporate a simple strategy that increased student metacognition. Every Friday she had her students look over their math work and choose a problem that they got incorrect. The students had to solve the problem using pictures, words etc. Then they had to identify if their mistake was due to carelessness or lack of understanding. Students shared their findings with the class.
The teacher reported that math grades went up, careless mistakes began to decrease and students became proficient at finding alternate ways of solving problems. She noticed that students were much more likely to not give up and group collaboration and peer to peer teaching increased.